我知道这些方法适用于酸洗/去除,与减少内置函数没有关系,但是2和我们为什么需要两者之间的区别是什么?
文档说
如果提供,在酸洗时
__reduce__()
将调用没有参数,并且它必须返回字符串或元组.
另一方面,
在实施时了解协议版本有时很有用
__reduce__
.这可以通过实现一个名为__reduce_ex__
而不是的方法 来完成__reduce__
.__reduce_ex__
,如果存在,则优先调用__reduce__
(您可能仍然提供__reduce__
向后兼容性).__reduce_ex__
将使用单个整数参数(协议版本)调用该方法.
在握紧的手上,Guido说这是一个可以清理的区域.
__reduce_ex__
是__reduce__
应该的,但永远不会成为。 __reduce_ex__
的工作原理类似,__reduce__
但是通过了pickle协议。