Встречается на собеседованиях • сегодня

Как устроен метакласс

Метакласс — это класс, который создаёт другие классы. В Python метаклассы контролируют создание классов, подобно тому как классы контролируют создание экземпляров.

По умолчанию метаклассом является type. Когда вы определяете класс, Python вызывает type.__new__() для его создания.

Пример метакласса:

python
class Meta(type):
    def __new__(cls, name, bases, namespace):
        print(f"Создание класса {name}")
        return super().__new__(cls, name, bases, namespace)

class MyClass(metaclass=Meta):
pass # Выведет: "Создание класса MyClass"

text

**Как это работает:**  
1. Python ищет метакласс в определении класса (`metaclass=Meta`).  
2. Вызывает `Meta.__new__()`, передавая имя класса, родительские классы и атрибуты.  
3. Метакласс может модифицировать создаваемый класс (например, добавить методы, проверить атрибуты).  

Используется редко, в основном для:  
- Валидации атрибутов класса.  
- Автоматической регистрации классов (например, в ORM).  
- Изменения поведения наследования.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы