繁体   English   中英

如果是元类,我们如何访问继承的 class 属性

[英]How can we access inherited class attributes in case of metaclasses

即使var1ChildClass class 的成员,为什么我无法使用ChildClass.var1访问var1

class MyType(type):
    def __getattribute__(self, name):
        print('attr lookup for %s' % str(name))
        return object.__getattribute__(self, name)
class BaseClass(object):
    __metaclass__ = MyType
    var1 = 5
class ChildClass(BaseClass):
    var2 = 6
print(ChildClass.var2) #works
print(ChildClass.var1) #fails

我收到以下错误

AttributeError: 'MyType' object has no attribute 'var1'

谢谢

由于MyType是一个type ,使用type.__getattribute__而不是object.__getattribute__

class MyType(type):
    def __getattribute__(self, name):
        print('attr lookup for %s' % str(name))
        return type.__getattribute__(self, name)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM