Sobes.tech
Назад к вопросам
Junior — Middle
60

Объясните роль и предназначение метаклассов в Python и как они используются при определении классов.

Компании, где спрашивали
МТСМТС
Soft Media Group

Ответ от нейросети

sobes.tech AI

Метаклассы в Python — это классы для классов. Они определяют, как создаются классы. Обычно при объявлении класса Python использует метакласс type по умолчанию.

Роль метаклассов — контролировать процесс создания класса: можно изменить атрибуты, методы, добавить логику или проверку.

Пример использования:

class Meta(type):
    def __new__(cls, name, bases, attrs):
        attrs['custom_attr'] = 'Добавлено метаклассом'
        return super().__new__(cls, name, bases, attrs)

class MyClass(metaclass=Meta):
    pass

print(MyClass.custom_attr)  # Выведет: Добавлено метаклассом

Таким образом, метаклассы полезны для создания фреймворков, ORM, где нужно автоматически модифицировать классы при их определении.