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

Для чего нужен метакласс

Метаклассы в Python позволяют контролировать создание и поведение классов. Они определяют, как создаются сами классы (поскольку классы в Python тоже являются объектами). Основные сценарии использования:

  1. Регистрация классов (например, для плагинов)
  2. Проверка/модификация атрибутов класса
  3. Автоматическое добавление методов
  4. Реализация ORM, API, валидаторов

Пример простого метакласса, который добавляет к имени класса префикс:

python
class PrefixMeta(type):
    def __new__(cls, name, bases, namespace):
        namespace['__annotations__'] = {}
        prefixed_name = f'Prefixed_{name}'
        return super().__new__(cls, prefixed_name, bases, namespace)

class MyClass(metaclass=PrefixMeta):
    pass

print(MyClass.__name__)  # Выведет: Prefixed_MyClass

Важно: метаклассы усложняют код, поэтому их стоит использовать только когда обычного наследования недостаточно.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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