<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7036.0">
<TITLE>Can not dump class object created on runtime</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><FONT SIZE=2 FACE="Courier New">Hello,</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">Can not dump class object created on runtime.</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">Is there anybody can help me? Thank.</FONT>
</P>

<P><U><FONT SIZE=2 FACE="Courier New">Following is testing code:</FONT></U>
</P>

<P><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">import</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New"> pickle</FONT>

<BR><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">from</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New"> new</FONT> <FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">import</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New"> classobj</FONT>
</P>

<P><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">class</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New"><B> A</B>:</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">   </FONT> <FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">def</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New"></FONT><B> <FONT COLOR="#000000" SIZE=2 FACE="Courier New">__str__</FONT></B><FONT COLOR="#000000" SIZE=2 FACE="Courier New">(<I>self</I>):</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">       </FONT> <FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">return</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New"></FONT><I> <FONT COLOR="#000000" SIZE=2 FACE="Courier New">self</FONT></I><FONT COLOR="#000000" SIZE=2 FACE="Courier New">.__class__.name</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">   </FONT> 

<BR><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">if</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New"> __name__ ==</FONT><I> <FONT COLOR="#00AA00" SIZE=2 FACE="Courier New">"__main__"</FONT></I><FONT COLOR="#000000" SIZE=2 FACE="Courier New">:</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">    c = classobj(</FONT><I><FONT COLOR="#00AA00" SIZE=2 FACE="Courier New">'B'</FONT></I><FONT COLOR="#000000" SIZE=2 FACE="Courier New">, (A, ), {})</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New"> # create class obj on runtime</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">   </FONT> <FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">print</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New"> c</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">   </FONT> <FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">print</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New"> pickle.dumps</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New">(c) # get dump string</FONT><SPAN LANG="zh-cn"></SPAN>
</P>

<P><U><SPAN LANG="en-us"><FONT COLOR="#000000" SIZE=2 FACE="Courier New">Bellows are outputs:</FONT></SPAN></U><SPAN LANG="en-us"></SPAN><SPAN LANG="zh-cn"></SPAN>
</P>

<P><SPAN LANG="zh-cn"><FONT COLOR="#000000" SIZE=2 FACE="Courier New">__main__.B</FONT></SPAN>

<BR><SPAN LANG="zh-cn"><FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">Traceback (most recent call last):</FONT></SPAN>

<BR><SPAN LANG="zh-cn"><FONT COLOR="#FF0000" SIZE=2 FACE="Courier New"> </FONT></SPAN><SPAN LANG="zh-cn"><U> <FONT COLOR="#000080" SIZE=2 FACE="Courier New">File "C:\USERS\train\_work\test\test.py", line 11, in <module></FONT></U></SPAN>

<BR><SPAN LANG="zh-cn"><FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">    print pickle.dumps(c)</FONT></SPAN>

<BR><SPAN LANG="zh-cn"><FONT COLOR="#FF0000" SIZE=2 FACE="Courier New"> </FONT><U> <FONT COLOR="#000080" SIZE=2 FACE="Courier New">File "c:\USERS\train\Python25\lib\pickle.py", line 1366, in dumps</FONT></U></SPAN>

<BR><SPAN LANG="zh-cn"><FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">    Pickler(file, protocol).dump(obj)</FONT></SPAN>

<BR><SPAN LANG="zh-cn"><FONT COLOR="#FF0000" SIZE=2 FACE="Courier New"> </FONT><U> <FONT COLOR="#000080" SIZE=2 FACE="Courier New">File "c:\USERS\train\Python25\lib\pickle.py", line 224, in dump</FONT></U></SPAN>

<BR><SPAN LANG="zh-cn"><FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">    self.save(obj)</FONT></SPAN>

<BR><SPAN LANG="zh-cn"><FONT COLOR="#FF0000" SIZE=2 FACE="Courier New"> </FONT><U> <FONT COLOR="#000080" SIZE=2 FACE="Courier New">File "c:\USERS\train\Python25\lib\pickle.py", line 286, in save</FONT></U></SPAN>

<BR><SPAN LANG="zh-cn"><FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">    f(self, obj) # Call unbound method with explicit self</FONT></SPAN>

<BR><SPAN LANG="zh-cn"><FONT COLOR="#FF0000" SIZE=2 FACE="Courier New"> </FONT><U> <FONT COLOR="#000080" SIZE=2 FACE="Courier New">File "c:\USERS\train\Python25\lib\pickle.py", line 748, in save_global</FONT></U></SPAN>

<BR><SPAN LANG="zh-cn"><FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">    (obj, module, name))</FONT></SPAN>

<BR><SPAN LANG="zh-cn"><FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">pickle.PicklingError: Can't pickle <class __main__.B at 0x00AF4CF0>: it's not found as __main__.B</FONT></SPAN>
</P>

<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Courier New">- Tommy</FONT></SPAN>

<BR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Courier New">HZ 23026</FONT></SPAN>

<BR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Courier New">MP 13958175281</FONT></SPAN>
</P>

</BODY>
</HTML>