
Terry Reedy wrote:
On 8/11/2014 5:10 AM, Schmitt Uwe (ID SIS) wrote:
Python usage questions should be directed to python-list, for instance.
I discovered a problem using cPickle.loads from CPython 2.7.6.
The problem is your code having infinite recursion. You only discovered it with pickle.
The last line in the following code raises an infinite recursion
class T(object):
def __init__(self): self.item = list()
def __getattr__(self, name): return getattr(self.item, name)
This is a (common) bug in your program. __getattr__ should call self.__dict__(name) to avoid the recursion.
Read again. The OP tries to delegate attribute lookup to an (existing) attribute. IMO the root cause of the problem is that pickle looks up __dunder__ methods in the instance rather than the class.