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.
我知道这些方法用于酸洗/解酸,与 reduce 内置函数无关,但是 2 之间有什么区别,为什么我们需要两者?
文档说
如果提供,在酸洗时 __reduce__()将不带参数调用,它必须返回一个字符串或一个元组。
__reduce__()
另一方面,
在实现时了解协议版本有时很有用 __reduce__。这可以通过实现一个名为 __reduce_ex__而不是 __reduce__. __reduce_ex__,当它存在时,优先调用 __reduce__(您仍然可以提供 __reduce__向后兼容性)。该__reduce_ex__ 方法将使用单个整数参数(协议版本)调用。
__reduce__
__reduce_ex__
Guido说,这是一个可以清理的区域。
__reduce_ex__是__reduce__应该成为但从未成为的。 __reduce_ex__工作方式类似__reduce__,但通过了 pickle 协议。