Python的__getattr__和__getattribute__

__getattr__
__getattr__在当前主流的Python版本中都可用,重载__getattr__方法对类及其实例未定义的属性有效。也就属性是说,如果访问的属性存在,就不会调用__getattr__方法。这个属性的存在,包括类属性和实例属性。

 

__getattribute__
__getattribute__仅在新式类中可用,重载__getattrbute__方法对类实例的每个属性访问都有效。

 

另外,当同时定义__getattribute__和__getattr__时,__getattr__方法不会再被调用,除非显示调用__getattr__方法或引发AttributeError异常。

 

更多实例见:https://www.cnblogs.com/blackmatrix/p/5681480.html

posted @ 2019-02-10 22:42  心媛意码  阅读(184)  评论(0编辑  收藏  举报