Guten Morgen,
wenn man die Magic Methode __reduce__ in seine Selbst-gestrickten Klassen implementiert, erlaubt man pickle neue Objekte durch den Aufruf von __init__ zu konstruieren. So weit so gut auch mit der Umsetzung hapert es nicht , ich müsste jetzt eigentlich Glücklich und Zufrieden sein. Bin ich aber nicht den ich Frage mich, die ganze Zeit was man mit der Methode __reduce_ex__ machen kann.
Laut Python Doku kann es manchmal nützlich sein die, Pickle Protokoll-Version beim "reduzieren" mit zu übergeben, aber mir fällt einfach keine sinnvolle Idee ein und das obwohl ich seit zwei Tagen darüber nachdenke . Ich habe auch schon bei http://www.koders.com/ danach gesucht und nichts passendes gefunden. Vielleicht hat ja hier jemand eine Idee wie man __reduce_ex__ sinnvoll einsetzen könnte.
Schon mal Danke für die Ideen
Albertus
__reduce__ und __reduce_ex__
Du kannst die "ex"-Variante als eine Fehlerkorrektur ansehen. Die alte "__reduce__"-Methode konnte/wollte man nicht mehr ändern, also hat mal, als erkannt wurde, dass es sinnvoll sein kann, die Protokollversion zu erkennen (also ob z.B. ASCII oder Binär gepickelt wird) und man hat eine weitere Methode definiert, die statt der alten Methode benutzt wird, wenn sie vorhanden ist. Python 3 benutzt noch mal wieder eine andere Version des Pickle-Protokolls, sodass es auch hier interessant sein kann, zu wissen, ob 0 (der Standard unter 2.x) oder 3 (der Standard unter 3.x) benutzt wird.
Stefan
Stefan