Встречается на 1% собеседований по Python

Использовал ли метакласс (metaclass)

Да, метаклассы в Python используются для управления созданием классов. Они позволяют изменять поведение класса на этапе его создания, например, добавлять атрибуты, методы или валидировать свойства.

Пример:

python
class Meta(type):
    def __new__(cls, name, bases, dct):
        dct['version'] = 1.0  # Добавляем атрибут всем классам
        return super().__new__(cls, name, bases, dct)

class MyClass(metaclass=Meta):
pass

print(MyClass.version) # 1.0

text

**Когда использовать:**  
- Для автоматической регистрации классов (например, в ORM, как Django).  
- Для добавления общих атрибутов/методов группе классов.  
- Для валидации или изменения структуры класса.  

**Альтернативы:**  
- Декораторы классов (`@classdecorator`).  
- Наследование (если изменения статичны).  

Метаклассы сложны, поэтому их стоит применять только когда другие способы не подходят.

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

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

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