0
import pickle

class A:
    pass

pickle.dumps(B().__reduce__())

产量

(<function _reconstructor at 0x1010143b0>, (<class '__main__.B'>, <class 'object'>, None))

这个函数“_reconstructor”是什么。它既不是B, B.__init__, 也不B.__new__是我所期望的。

4

1 回答 1

1

我必须进行 2 处更改才能获得该结果:

  1. 将您的班级名称从 更改AB

  2. 删除外部pickle.dumps()调用。

在任何情况下,pickle都可以自由地做任何事情来重建对象;-) 在这种情况下,您可以_reconstructor()Lib/copyreg.py.

于 2013-09-18T00:52:13.260 回答