Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pyOpCcIh 165 of 174 menu
◀ ▶

Наследование метаклассов в ООП в Python

Если у родителя задан метакласс, потомок получает тот же метакласс автоматически. Дополнительно указывать его не нужно.

class Meta(type): pass class User(metaclass=Meta): pass class Student(User): pass print(type(Student) is Meta) # выведет True

При множественном наследовании метаклассы родителей должны совпадать. Иначе Python не сможет выбрать один метакласс для нового класса и выдаст ошибку metaclass conflict.

class MetaA(type): pass class MetaB(type): pass class A(metaclass=MetaA): pass class B(metaclass=MetaB): pass class C(A, B): # TypeError: metaclass conflict pass

Сделайте метакласс Meta и класс User с этим метаклассом.

Объявите Employee, наследующий от User. Проверьте, что метакласс у Employee тот же, что у User.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить