
При написании кода я стараюсь устранить все замечания линтера PyCharm. Но с миксинами сделать это не так просто
Возьмём для примера, вот такой миксин:
Линтер не доволен, т.к. не понимает при чём тутself.request
. Этот вопрос я решал просто, я просто затыкал рот линтеру.
Линтер доволен и молчит, даже если есть явная проблема.
В конце концов, безмолвный линтер стал проблемой, и я решил разобраться в вопросе. Я заглянул вдокументацию mypy из которой узнал, как можно решить множество замечаний линтера связанные с типами и аннотацией, но не для миксинов. К счастью, я не первый кто задумался об этом, и хоть не с первого раза, я нашёл ответ на StackOverflow, но вам я его не покажу, т.к. не могу найти его снова. Зато я могу показать, как выглядит то, что в итоге получилось:
fromtypingimportTypeVarT=TypeVar('T')defmixin_for(_:T)->T:returnobject
Функцияmixin_for
позволяет сказать линтеру к какому классу будет подмешиваться миксин.
Заодно получаем автодополнение кода.
На этом всё.
Глоссарий
- миксин - mixin, примесь
- линтер - linter, статический анализатор кода
Top comments(0)
For further actions, you may consider blocking this person and/orreporting abuse
Read next

Unveiling Open Hardware License: A Deep Dive into Transparency and Collaboration
Vitali Sorenko -

Unveiling the Open Data Commons Attribution License: A Deep Dive
ashu-commits -

The Allure of the Zlib/Libpng License: A Gateway to Open Source Innovation
JennyThomas498 -

I now use zed on a daily basis because of the git integration!
Adam -