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

С какими метаклассами работал

В 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__` как альтернативу.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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