Я борюсь с __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__
документация ). getattr()
можно просто использовать A.__dict__
. Есть мысли?