问题描述
我在某个地方定义了一个基类,该基类可由某些用户扩展。
现在,我想访问该用户在其子类中可能定义的变量,以便我可以对其进行处理。
我尝试使用metaclass
es
这里是示例设置:
class Meta(type):
def __new__(cls,name,bases,attrs):
clsobj = super().__new__(cls,attrs)
print(f'the name of this class is {clsobj.NAME.upper()}')
return clsobj
class Base(metaclass=Meta):
pass
class C1(Base):
NAME = "C1"
if __name__ == "__main__":
c1 = C1()
但是我遇到以下错误:
AttributeError: type object 'Base' has no attribute 'NAME'
Base
类既不应了解其sublcass变量,而应仅访问它们。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)