擅长:python、mysql、java
<p><code>pickle</code>需要导入模块<code>a</code>和{<cd3>},以便加载重新构建对象所需的类<code>A</code>和{<cd5>}。我以你为例,把a.py重命名为aaaa.py公司和b.py tobbbb.py公司. 现在,如果我们打印消息(pickled对象),则发件人.py实际上是在发送,你可以看到:</p>
<pre><code>ccopy_reg
_reconstructor
p0
(cbbbb
B
p1
c__builtin__
object
p2
Ntp3
Rp4
(dp5
S'obj'
p6
g0
(caaaa
A
p7
g2
Ntp8
Rp9
(dp10
S'name'
p11
S'Martin'
p12
sbsb.
</code></pre>
<p>您不需要理解所有这些,但是请注意<code>bbbb</code>后跟<code>B</code>,以及{<cd8>}然后是{<cd4>}在那里。它告诉<code>pickle</code>如何重建pickled对象。为了加载类,它必须导入在其中定义类的模块。如果你试图搞乱pickle的机器并阻止加载模块,那么就没有办法重建对象了。在</p>