__reduce__和__reduce_ex__有什么区别?


问题内容

我知道这些方法是用于酸洗/酸洗的,与reduce内置函数无关,但是两者之间有什么区别,为什么我们都需要两者?


问题答案:

医生

如果提供,则在酸洗时 __reduce__()将不带任何参数调用,并且它必须返回字符串或元组。

另一方面,

在实现时了解协议版本有时会很有用 __reduce__。这可以通过实现名为__reduce_ex__而不是的方法 来完成
__reduce____reduce_ex__(如果存在)优先于调用 __reduce__(您仍可以提供
__reduce__向后兼容性)。__reduce_ex__ 将使用单个整数参数(协议版本)调用该方法。

吉多说,在握的那只手上,这是可以清理的区域。