Back to questions
Junior — Middle
52
Какие методы метакласса активируются при создании нового класса в Python?
Answer from AI
sobes.tech AI
При создании нового класса в Python метакласс активирует в первую очередь метод __new__, который отвечает за создание самого объекта класса (то есть класса как объекта метакласса). Затем вызывается метод __init__, который инициализирует созданный класс, например, устанавливает атрибуты.
Процесс выглядит так:
__new__(metacls, name, bases, namespace)— создает объект класса.__init__(cls, name, bases, namespace)— инициализирует созданный класс.
Пример метакласса с этими методами:
class Meta(type):
def __new__(metacls, name, bases, namespace):
print(f"Создаем класс {name}")
return super().__new__(metacls, name, bases, namespace)
def __init__(cls, name, bases, namespace):
print(f"Инициализируем класс {name}")
super().__init__(name, bases, namespace)
class MyClass(metaclass=Meta):
pass
При объявлении MyClass выведется:
Создаем класс MyClass
Инициализируем класс MyClass