[Python-Dev] python2.7 infinite recursion when loading pickled object

R. David Murray rdmurray at bitdance.com
Mon Aug 11 14:10:30 CEST 2014


On Mon, 11 Aug 2014 21:43:00 +1000, Chris Angelico <rosuav at gmail.com> wrote:
> On Mon, Aug 11, 2014 at 9:40 PM, Peter Otten <__peter__ at web.de> wrote:
> > 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.
> 
> The recursion comes from the attempted lookup of self.item, when
> __init__ hasn't been called.

Indeed, and this is what the OP missed.  With a class like this, it is
necessary to *make* it pickleable, since the pickle protocol doesn't
call __init__.

--David


More information about the Python-Dev mailing list