Наследование метаклассов в ООП в 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.