Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
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__是我所期望的。
B
B.__init__
B.__new__
我必须进行 2 处更改才能获得该结果:
将您的班级名称从 更改A为B。
A
删除外部pickle.dumps()调用。
pickle.dumps()
在任何情况下,pickle都可以自由地做任何事情来重建对象;-) 在这种情况下,您可以_reconstructor()在Lib/copyreg.py.
pickle
_reconstructor()
Lib/copyreg.py