The Python documentation specifies:
object.__getattr__(self, name)
Called when an attribute lookup has not found the attribute in the usual places (i.e. it is not an instance attribute nor is it found in the class tree for self). name is the attribute name. This method should return the (computed) attribute value or raise an AttributeError exception.
However, Shared.DC.Scripts.Bindings.UnauthorizedBinding.__getattr__ has the signature self, name, default=None. When Python's getattr(obj, x, default) delegates to this __getattr__ it will not pass on default and the result will be None when obj has not attribute x.
The Python documentation specifies:
However,
Shared.DC.Scripts.Bindings.UnauthorizedBinding.__getattr__has the signatureself, name, default=None. When Python'sgetattr(obj, x, default)delegates to this__getattr__it will not pass ondefaultand the result will beNonewhenobjhas not attributex.