In [1]: class Foo(object):
...: class Bar(object):
...: def __init__(self):
...: self.str = "gnarf"
...: def __init__(self):
...: self.str = "point"
...:
In [2]: b = Foo.Bar()
In [3]: f = open("test","w+")
In [4]: import pickle as P
In [5]: p = P.Pickler(f)
In [6]: p.dump(b)
---------------------------------------------------------------------------
<class 'pickle.PicklingError'> Traceback (most recent call last)
/home/cers/projects/Facebook/<ipython console> in <module>()
/home/cers/projects/Facebook/pickle.py in dump(self, obj)
222 if self.proto >= 2:
223 self.write(PROTO + chr(self.proto))
--> 224 self.save(obj)
225 self.write(STOP)
226
/home/cers/projects/Facebook/pickle.py in save(self, obj)
329
330 # Save the reduce() output and finally memoize the object
--> 331 self.save_reduce(obj=obj, *rv)
332
333 def persistent_id(self, obj):
/home/cers/projects/Facebook/pickle.py in save_reduce(self, func, args, state, listitems, dictitems, obj)
399 else:
400 save(func)
--> 401 save(args)
402 write(REDUCE)
403
/home/cers/projects/Facebook/pickle.py in save(self, obj)
284 f = self.dispatch.get(t)
285 if f:
--> 286 f(self, obj) # Call unbound method with explicit self
287 return
288
/home/cers/projects/Facebook/pickle.py in save_tuple(self, obj)
560 write(MARK)
561 for element in obj:
--> 562 save(element)
563
564 if id(obj) in memo:
/home/cers/projects/Facebook/pickle.py in save(self, obj)
284 f = self.dispatch.get(t)
285 if f:
--> 286 f(self, obj) # Call unbound method with explicit self
287 return
288
/home/cers/projects/Facebook/pickle.py in save_global(self, obj, name, pack)
746 raise PicklingError(
747 "Can't pickle %r: it's not found as %s.%s" %
--> 748 (obj, module, name))
749 else:
750 if klass is not obj:
<class 'pickle.PicklingError'>: Can't pickle <class '__main__.Bar'>: it's not found as __main__.Bar