擅长:python、mysql、java
<p>问题似乎是循环引用-<code>instA</code>引用<code>instB</code>,反之亦然。
以下是我的工作:</p>
<pre><code>class Base(dict):
def __init__(self):
super(Base, self).__init__()
def setInstB(self, instB):
self['instB']=instB
class ClassA(Base):
def __init__(self):
super(ClassA, self).__init__()
class ClassB(Base):
def __init__(self):
super(ClassB, self).__init__()
def setInstA(self, instA):
self.instA=instA
if __name__ == '__main__':
import pickle
instA=ClassA()
instB=ClassB()
instA.setInstB(instB)
# omit the cyclic reference
#instB.setInstA(instA)
pickle.dumps(instA)
</code></pre>
<p>在<code>instB.setInstA(instA)</code>中添加注释将导致复制错误消息。
因此,如果您可以在没有循环引用的情况下生存,这可能是最简单的解决方法。在</p>