Python 2 __getattr__ Max Recursion Depth
for example i use this code: class A(object): def __init__(self): self.dict1 = { 'A': 3, 'B': self.A} def __getattr__(self, key): if
Solution 1:
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
.
Post a Comment for "Python 2 __getattr__ Max Recursion Depth"