Встречается на 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
интервью вопросы и ответы