Встречается на собеседованиях • сегодня
Использовал ли метакласс (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
интервью вопросы и ответы