Какие методы метакласса (metaclass) вызываются при объявление класса

Python Middle Без компании
Какие методы метакласса (metaclass) вызываются при объявление класса
Ответы
При объявлении класса метакласс вызывает следующие методы в порядке их выполнения: - `__prepare__(metacls, name, bases, **kwargs)` - вызывается первым, создает пространство имен для класса (возвращает dict-like объект). Необязательный метод. - `__new__(metacls, name, bases, namespace, **kwargs)` - создает и возвращает новый класс. Здесь можно модифицировать атрибуты класса до его создания. - `__init__(cls, name, bases, namespace, **kwargs)` - инициализирует созданный класс. Аналог `__init__` для обычных классов. Пример: ``` class Meta(type): @classmethod def __prepare__(metacls, name, bases, **kwargs): print("__prepare__") return {} def __new__(metacls, name, bases, namespace, **kwargs): print("__new__") return super().__new__(metacls, name, bases, namespace) def __init__(cls, name, bases, namespace, **kwargs): print("__init__") super().__init__(name, bases, namespace) class MyClass(metaclass=Meta): pass ``` Вывод: ``` __prepare__ __new__ __init__ ```