###
3.3.2.1 More attribute access for new-style classes

The following methods only apply to new-style classes.

`__getattribute__`( | self, name)

  Called unconditionally to implement attribute accesses for instances of the class. If the class also defines `__getattr__()`, the latter will not be called unless `__getattribute__()` either calls it explicitly or raises an `AttributeError`. This method should return the (computed) attribute value or raise an `AttributeError` exception. In order to avoid infinite recursion in this method, its implementation should always call the base class method with the same name to access any attributes it needs, for example, "`object.__getattribute__(self, name)`".