Skip to content

Instantly share code, notes, and snippets.

View rineisky's full-sized avatar

Vyacheslav Rineisky rineisky

  • Epam Systems
  • Minsk, Belarus
View GitHub Profile
@rineisky
rineisky / metaclasses.md
Last active February 18, 2023 17:00
Стоит ли бояться метаклассов?

Стоит ли бояться метаклассов?

Пожалуй, разговор о метаклассах стоит начать с многим известной цитаты Тима Питерса:

Метаклассы – это магия, о которой 99% пользователей не стоит даже задумываться. Если вам интересно, нужны ли они вам – тогда точно нет. Люди, которым они на самом деле нужны, знают, зачем, и что с ними делать.

Но за что же мы все с вами любим Python? Конечно же, в первую очередь, за его простоту (но это не про сегодняшний разговор), ну а во-вторых за его гибкость. Метаклассы - это, как раз, тот инструмент, который может добавить вашему коду гибкости, но, как известно, с большой силой приходит и большая ответственность, поэтому необходимо хотя бы на базовом уровне понимать, что такое метаклассы и зачем они могут использоваться.

Так что давайте разбираться, действительно ли эта тема настолько сложна?