LINUX.ORG.RU

Какие операции выполнятся при создание экземпляра класса в python?

 


0

1

Разбираюсь с принципом работы init. Везде написано следующее: метод вызывается при создании объекта. Я предположил, что сначала создается объект, а сразу после автоматически вызывается init?Верно? Что вообще входит в понятие «создание объекта»?


А так и есть. Сначала через new создаётся объект, потому у объекта вызывается init. Плюс вызов методов метакласса.

oldstable
()
Ответ на: new от KRex

Почитай ещё про метаклассы. Снимает вопросы про то как работают ORM вроде SQLAlchemy или джанги.

oldstable
()
Ответ на: комментарий от oldstable

Почитай ещё про метаклассы. Снимает вопросы про то как работают ORM вроде SQLAlchemy или джанги

Да, через жопу. Есть фичи в питоне, которые мне не нравятся, есть те, которые я считаю некрасивыми, но метаклассы в питоне делались не иначе как под анашой. Прежде всего потому, что никаких метаклассов в питоне никогда не было и не будет, но какому-то укурку очень, очень хотелось назвать что-то метаклассом: «ну давайте назовем вот это метаклассом. - Ты что, какой это метакласс? Это же простая функция. - Ну у всех есть метаклассы, пусть и у нас будет. И метаметаклассы. Больше мета, больше анаши».

Серьезно, отношение класс-метакласс совершенно не похоже на отношение объект-класс, и по сути у метакласса кроме единственного метода ничего нет.

byko3y ★★★★
()
Ответ на: комментарий от byko3y

Да и пофиг. Всё равно метаклассы в питоне нужны только для управления созданием объектов.

oldstable
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.