1 | class C: |
- 在旧式类中不存在这两个属性,而python3中都是新式类。以上代码为python3。
- 通过实例访问属性时,都会调用
__getattribute__
,若访问属性需要调用object.__getattribute__(self, *args, **kwargs)
。直接调用自身属性会引发异常,python3引发RecursionError: maximum recursion depth exceeded while calling a Python object
。python2引发RuntimeError: maximum recursion depth exceeded while calling a Python object
。 - 当属性不存在或者
__getattribute__
引发AttributeError
异常时。会调用__getattr__
。