for example i use this code:
class A(object):
def __init__(self):
self.dict1 = {
\'A\': 3,
\'B\': self.A}
def __getat
The reference to self.dict1 inside your __getattr__ method causes __getattr__ to be called again, and so on, hence the infinite recursion. The only safe way to access attributes of self inside __getattr__ is by using references to self.__dict__. Try
def __getattr__(self, key):
if key in self.__dict__['dict1']:
return self.__dict__['dict1'][key]
Note also that the absence of an else clause will mean undefined attributes appear to have the value None.