Pickle vs. eval for deeply nested objects

E

Edward C. Jones

Here is a little piece of Python that produces a deeply nested tuple:

deep = 'x'
for i in range(50):
deep = (deep,)

This is a perfectly ordinary Python object. It can be pickled and unpickled:

s = cPickle.dumps(deep)
deep2 = cPickle.loads(s)

But "eval" (and "compiler.parse") fail on "str(deep)" because some stack
gets too big. Is there some deep reason why cPickle can reconstruct
"deep" from a string while eval can't?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,048
Latest member
verona

Latest Threads

Top