2008-09-29 2 views

Antwort

21

The docs sagen, dass

Falls vorhanden, bei Beizzeit __reduce__() wird ohne Argumenten aufgerufen werden, und es muss entweder ein String oder ein Tupel zurück.

Auf der anderen Seite,

es manchmal nützlich ist, um die Protokollversion zu wissen, wann __reduce__ Umsetzung. Dies kann durch durchgeführt werden, indem eine Methode namens __reduce_ex__ anstelle von __reduce__ implementiert wird. __reduce_ex__, wenn es vorhanden ist, wird bevorzugt über __reduce__ genannt (Sie noch __reduce__ für rückwärts Kompatibilität bereitstellen kann). Die __reduce_ex__ Methode wird mit einem einzigen Integer-Argument aufgerufen, das Protokoll Version.

Auf der greifenden Hand, Guido says, dass dies ein Bereich ist, der gereinigt werden könnte.

+0

Vielen Dank, John, für die Reinigung des Textes! :) –

4

__reduce_ex__ ist was __reduce__ hätte sein sollen, aber nie wurde. __reduce_ex__ funktioniert wie __reduce__, aber das Pickle-Protokoll ist bestanden.

Verwandte Themen