Комментарии 18
Спасибо, очень интересно.

можно создать метакласс, унаследованный от метакласса, унаследованного от type

Спасибо, очень доступно и весело написано, когда я изучал метаклассы читал Лутца, он конечно молодец, но занудно слегка у него.
Метаклассы только пугают своей сложностью, на самом деле они просты.
Кстати, в статье ничего не сказано про переопределение __call__ в метаклассе, а часто это бывает полезным :)
Кстати, в статье ничего не сказано про переопределение __call__ в метаклассе, а часто это бывает полезным :)
познал как устроен питон! благодарю )
А за что человеку минусов-то накидали? В статье действительно рассказаны некоторые тонкости устройства питона. Я вот тоже для себя много нового узнал.
Магия запрещена вне Хогвартса!
Действительно, метаклассы выглядят как магия. И понадобится только для очень сложных сервисов и фреймворков.
Немного опасался того, что такая магия может привести к прибитому гвоздями поведению. Один раз использовал фреймворк, который на каждый чих дергает базу данных, т.е. нужно поменять 15 параметров — на каждый параметр будет создан запрос. Это в лучшем случае, в худшем доходило до 30-45 запросов, т.е. 2-3 запроса на изменение параметра, типа «узнать что сейчас записано», «записать», «проверить что записалось».
Надеюсь, в Django можно всего за 2-3 запроса все выполнить
Действительно, метаклассы выглядят как магия. И понадобится только для очень сложных сервисов и фреймворков.
Немного опасался того, что такая магия может привести к прибитому гвоздями поведению. Один раз использовал фреймворк, который на каждый чих дергает базу данных, т.е. нужно поменять 15 параметров — на каждый параметр будет создан запрос. Это в лучшем случае, в худшем доходило до 30-45 запросов, т.е. 2-3 запроса на изменение параметра, типа «узнать что сейчас записано», «записать», «проверить что записалось».
Надеюсь, в Django можно всего за 2-3 запроса все выполнить
Про ORM Django отдельное спасибо, хотя бы чуточку прояснилась магия.
Огромное спасибо!
Очень доходчиво… читая раньше о метаклассах буквально засыпал на середине статьи так и не понимая толком сфер применения этой штуки.
Создал объект класс, а класс тоже объект
Спасибо большое за статью. Очень познавательно и интересно. В конце убила фраза :)
Метаклассы это глубокая магия, о которой 99% пользователей даже не нужно задумываться. Если вы думаете, нужно ли вам их использовать — вам не нужно
А у метакласса есть метакласс? Эту цепочку можно продолжать?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Метаклассы в Python