Вопрос

Я понимаю, что эти методы предназначены для травления / распиклирования и не имеют никакого отношения к встроенной функции reduce, но в чем разница между этими двумя и зачем нам нужны оба?

Это было полезно?

Решение

Документы скажи это

Если предусмотрено, во время маринования __reduce__() будет вызван без аргументов, и он должен возвращать либо строку, либо кортеж.

С другой стороны,

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

На сжимающей руке, Гвидо говорит что это область, которую можно было бы очистить.

Другие советы

__reduce_ex__ это что __reduce__ должен был быть, но так и не стал. __reduce_ex__ работает как __reduce__ но протокол о рассоле принят.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top