Python中默认的`__reduce__`是什么?

时间:2013-09-18 00:35:10

标签: python pickle

import pickle

class A:
    pass

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

产量

  

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

这个函数是什么“_reconstructor”。它不像我预期的那样BB.__init__B.__new__

1 个答案:

答案 0 :(得分:0)

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

  1. 将您的班级名称从A更改为B

  2. 删除外部pickle.dumps()来电。

  3. 在任何情况下,pickle可以自由地做任何喜欢重建对象的事情;-)在这种情况下,您可以在_reconstructor()中找到Lib/copyreg.py函数。