Я борюсь с __getattr__
. У меня сложная рекурсивная кодовая база, где важно, чтобы исключения распространялись.
class A(object):
@property
def a(self):
raise AttributeError('lala')
def __getattr__(self, name):
print('attr: ', name)
return 1
print(A().a)
Результаты в:
('attr: ', 'a')
1
Почему такое поведение? Почему нет исключения? Это поведение не документировано (__getattr__
documentation). getattr()
может просто использовать A.__dict__
. Любые мысли?