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

Что такое метаклассы в 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.  
- Для автоматической генерации кода.  

Осторожно: сложность метаклассов может усложнить поддержку кода!
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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