Python的__getattr__和__getattribute__

Posted 禾田守望者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python的__getattr__和__getattribute__相关的知识,希望对你有一定的参考价值。

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

 

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

 

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

 

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

以上是关于Python的__getattr__和__getattribute__的主要内容,如果未能解决你的问题,请参考以下文章

Python的__getattr__和__getattribute__

python中__getattr__和__getattribute__区别

Python的魔法函数系列 __getattrbute__和__getattr__

Python对象里的 __call__ 和 __getattr__

python3中__get__,__getattr__,__getattribute__的区别

python之 __getattr____getattr____getitem____setitem__ 使用