dill是一个很好的工具,用于挑选大多数Python对象,我在IPython并行使用它来序列化计算.我一直关注的一个问题是关于莳萝类的定义.我得到的一个错误解释如下.
虽然试图序列化类的定义,我不断收到AssertionError从dill.我想知道为什么其中一个工作而另一个工作失败:
class MyClassEmpty(object):
pass
class MyClassInit(object):
def __init__(self):
super(MyClassInit).__init__()
dill.dumps(MyClassEmpty) # returns: '\x80\x02cdill.dill\n_create_type\nq\x00(cdill.dill\n_load_type\nq\x01U\x08TypeTypeq\x02\x85q\x03Rq\x04U\x0cMyClassEmptyq\x05h\x01U\nObjectTypeq\x06\x85q\x07Rq\x08\x85q\t}q\n(U\n__module__q\x0bU\x08__main__q\x0cU\x07__doc__q\rNutq\x0eRq\x0f.'
dill.dumps(MyClassInit) # AssertionError at line 244 of MyClassEmpty (assert id(obj) not in self.memo)
Run Code Online (Sandbox Code Playgroud)
我使用dill 0.2.2在Python 2.7.6上.