Can not dump class object created on runtime

Metal Zong metalzong at
Wed Jun 10 10:25:24 EDT 2009


Can not dump class object created on runtime.

Is there anybody can help me? Thank.

Following is testing code:

import pickle
from new import classobj

class A:
    def __str__(self):
if __name__ == "__main__":
    c = classobj('B', (A, ), {}) # create class obj on runtime
    print c
    print pickle.dumps(c) # get dump string

Bellows are outputs:

Traceback (most recent call last):
  File "C:\USERS\train\_work\test\", line 11, in <module>
    print pickle.dumps(c)
  File "c:\USERS\train\Python25\lib\", line 1366, in dumps
    Pickler(file, protocol).dump(obj)
  File "c:\USERS\train\Python25\lib\", line 224, in dump
  File "c:\USERS\train\Python25\lib\", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "c:\USERS\train\Python25\lib\", line 748, in save_global
    (obj, module, name))
pickle.PicklingError: Can't pickle <class __main__.B at 0x00AF4CF0>: it's
not found as __main__.B

- Tommy
HZ 23026
MP 13958175281

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Python-list mailing list