Встречается на собеседованиях • сегодня
С какими метаклассами работал
В Python метаклассы — это классы, которые создают другие классы. Чаще всего используется встроенный метакласс type, но можно создавать и свои.
Пример своего метакласса:
python
class Meta(type):
def __new__(cls, name, bases, dct):
dct['custom_attr'] = 42 # Добавляем атрибут всем классам
return super().__new__(cls, name, bases, dct)
class MyClass(metaclass=Meta):
pass
print(MyClass.custom_attr) # 42
text
**Где применял:**
- Для автоматической регистрации классов (например, в ORM, плагинах).
- Для валидации или модификации атрибутов класса.
- В Django (ModelBase) и SQLAlchemy (DeclarativeMeta).
**Важно:**
- Метаклассы усложняют код, их стоит использовать только когда декораторов или наследования недостаточно.
- В Python 3 можно использовать `__init_subclass__` как альтернативу.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы