Pregunta

Entiendo que estos métodos son para decapar y desmenuzar y no tienen relación con la función incorporada de reducción, pero ¿cuál es la diferencia entre los 2 y por qué necesitamos ambos?

¿Fue útil?

Solución

Los documentos dicen que

  

Si se proporciona, en el momento del decapado    __reduce __ () se llamará sin   argumentos, y debe devolver un   cadena o una tupla.

Por otro lado,

  

A veces es útil conocer el   versión del protocolo al implementar    __reduce__ . Esto puede hacerse por   implementar un método llamado    __reduce_ex__ en lugar de    __reduce__ . __reduce_ex__ , cuando   existe, se llama con preferencia sobre    __reduce__ (aún puede proporcionar    __reduce__ para atrás   compatibilidad). El __reduce_ex__   Se llamará al método con un solo   argumento entero, el protocolo   versión.

Por un lado, Guido dice que esta es un área que podría limpiarse.

Otros consejos

__reduce_ex__ es lo que __reduce__ debería haber sido pero nunca se convirtió. __reduce_ex__ funciona como __reduce__ pero se pasa el protocolo de pickle.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top