Встречается на собеседованиях • сегодня
Что такое метаклассы в Python
Метаклассы — это "классы классов", которые контролируют создание и поведение других классов. В Python метаклассом по умолчанию является type.
Пример:
python
class Meta(type):
def __new__(cls, name, bases, attrs):
attrs['extra'] = 100 # Добавляем атрибут всем классам
return super().__new__(cls, name, bases, attrs)
class MyClass(metaclass=Meta):
pass
print(MyClass.extra) # 100
text
**Основные моменты:**
- Метаклассы позволяют перехватывать создание класса (через `__new__` или `__init__`).
- Используются для автоматического добавления атрибутов, валидации, регистрации классов и т.д.
- Альтернатива — декораторы классов (проще, но менее мощные).
**Когда применять:**
- При создании ORM (как в Django).
- Для реализации паттернов вроде Singleton.
- Для автоматической генерации кода.
Осторожно: сложность метаклассов может усложнить поддержку кода!
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы