Domanda

Capisco che questi metodi sono per il decapaggio / disimballaggio e non hanno alcuna relazione con la funzione integrata di riduzione, ma qual è la differenza tra i 2 e perché abbiamo bisogno di entrambi?

È stato utile?

Soluzione

I documenti dicono che

  

Se fornito, al momento del decapaggio    __reduce __ () verrà chiamato con il n   argomenti e deve restituire a   stringa o una tupla.

D'altra parte,

  

A volte è utile conoscere il   versione del protocollo durante l'implementazione    __ ridurre __ . Questo può essere fatto da   implementando un metodo chiamato    __reduce_ex__ anziché    __ ridurre __ . __reduce_ex__ , quando   esiste, viene chiamato in preferenza    __reduce__ (potresti comunque fornire    __reduce__ per le versioni precedenti   Compatibilità). Il __reduce_ex__   il metodo verrà chiamato con un singolo   argomento intero, il protocollo   versione.

Sulla mano avvincente, Guido dice che questa è un'area che potrebbe essere ripulita.

Altri suggerimenti

__reduce_ex__ è ciò che __reduce__ avrebbe dovuto essere ma non è mai diventato. __reduce_ex__ funziona come __reduce__ ma il protocollo pickle è passato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top