Ссылка на self.dict1
внутри вашего метода __getattr__
вызывает __getattr__
для повторного вызова и т. д., следовательно, бесконечную рекурсию. Единственным безопасным способом доступа к атрибутам self
внутри __getattr__
является использование ссылок на self.__dict__
. Попробуйте
def __getattr__(self, key):
if key in self.__dict__['dict1']:
return self.__dict__['dict1'][key]
Заметим также, что отсутствие предложения else
будет означать, что неопределенные атрибуты имеют значение None
.