Movatterモバイル変換


[0]ホーム

URL:


Skip to content
DEV Community
Log in Create account

DEV Community

Cover image for Аннотация типов в миксинах
Гимаев Наиль
Гимаев Наиль

Posted on • Edited on

     

Аннотация типов в миксинах

При написании кода я стараюсь устранить все замечания линтера PyCharm. Но с миксинами сделать это не так просто
Возьмём для примера, вот такой миксин:

Image description
Линтер не доволен, т.к. не понимает при чём тутself.request. Этот вопрос я решал просто, я просто затыкал рот линтеру.
image
Линтер доволен и молчит, даже если есть явная проблема.
В конце концов, безмолвный линтер стал проблемой, и я решил разобраться в вопросе. Я заглянул вдокументацию mypy из которой узнал, как можно решить множество замечаний линтера связанные с типами и аннотацией, но не для миксинов. К счастью, я не первый кто задумался об этом, и хоть не с первого раза, я нашёл ответ на StackOverflow, но вам я его не покажу, т.к. не могу найти его снова. Зато я могу показать, как выглядит то, что в итоге получилось:

fromtypingimportTypeVarT=TypeVar('T')defmixin_for(_:T)->T:returnobject
Enter fullscreen modeExit fullscreen mode

Функцияmixin_for позволяет сказать линтеру к какому классу будет подмешиваться миксин.
image
Заодно получаем автодополнение кода.

На этом всё.

Глоссарий

  • миксин - mixin, примесь
  • линтер - linter, статический анализатор кода

Top comments(0)

Subscribe
pic
Create template

Templates let you quickly answer FAQs or store snippets for re-use.

Dismiss

Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment'spermalink.

For further actions, you may consider blocking this person and/orreporting abuse

Read next

vitalisorenko profile image

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

Vitali Sorenko -

ashucommits profile image

Unveiling the Open Data Commons Attribution License: A Deep Dive

ashu-commits -

jennythomas498 profile image

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

JennyThomas498 -

urbanisierung profile image

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

Adam -

Я здесь, чтобы оставлять после себя кучи мыслей и знаний, которые я обычно высказываю при ревью кода своих коллег.
  • Joined

More fromГимаев Наиль

DEV Community

We're a place where coders share, stay up-to-date and grow their careers.

Log in Create account

[8]ページ先頭

©2009-2025 Movatter.jp