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

Использовал ли метакласс (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`).  
- Наследование (если изменения статичны).  

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

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

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

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