【发布时间】:2021-08-21 01:30:33
【问题描述】:
我使用元类为 Parent 类创建了一个抽象类属性:
from abc import abstractmethod, ABCMeta
class ParentMeta(ABCMeta):
@property
@abstractmethod
def CONSTANT(cls):
raise NotImplementedError()
class Parent(metaclass=ParentMeta):
pass
我可以为它设置一个值,如下所示:
class ChildMeta(ParentMeta):
CONSTANT = 4
class Child(Parent, metaclass=ChildMeta):
pass
print(Child.CONSTANT) // 4
是否也可以在不经过额外元类的情况下为其赋值?比如如下?
class OtherChild(Parent):
CONSTANT = 5
OtherChild.CONSTANT // NotImplementedError
【问题讨论】:
标签: python properties abstract metaclass