Ответ 1
Документы говорят, что
Если это предусмотрено, во время травления
__reduce__()
будет вызываться без аргументы, и он должен вернуть либо строка или кортеж.
С другой стороны,
Иногда полезно знать версии протокола при реализации
__reduce__
. Это можно сделать реализация метода с именем__reduce_ex__
вместо__reduce__
.__reduce_ex__
, когда существует, называется предпочтительнее__reduce__
(вы все равно можете предоставить__reduce__
для назад совместимость).__reduce_ex__
метод будет вызываться с одним целочисленный аргумент, протокол версия.
На захватной руке Гвидо говорит, что это область, которую можно очистить.