我上这个班:
class Meta:
def __getattr__(self, atr):
print('get', atr)
def __setattr__(self, atr, atr_value):
print('{0} with value {1} added'.format(atr, atr_value))
self.__dict__[atr] = atr_value
当我设置一个属性-print
起作用时:
^{pr2}$
但当我叫它的时候:
^{3}$
返回值时没有print
输出。在
我们将不胜感激。在
Tags:
如果属性在类或实例字典中,则不会调用
__getattr__
。这是__setattr__
有意造成的不对称。在如果您想要完全控制,请实现
__getattribute__
。在只有当属性不存在时才会调用
__getattr__
。您要重写__gettattribute__
。在在新样式类中,只有在实例或其类上找不到属性时才会调用^{} (对于旧样式类也是如此)(这也包括基类)。在
在新样式的类中,可以通过重写^{} 来实现这一点。在
相关问题 更多 >
编程相关推荐