Was bedeutet es für ein Objekt, picklable (oder pickle-fähig) zu sein?

81

Python-Dokumente erwähnen dieses Wort oft und ich möchte wissen, was es bedeutet! Googeln hilft nicht viel ..

Paul
quelle
8
serialisierbar .......
Mauricio Scheffer

Antworten:

27

Dinge, die normalerweise nicht ausgewählt werden können, sind beispielsweise Sockets, Datei (Handler), Datenbankverbindungen usw. Alles, was (rekursiv) aus grundlegenden Python-Typen aufgebaut ist (Diktate, Listen, Grundelemente, Objekte, Objektreferenzen, sogar Zirkel), kann standardmäßig ausgewählt werden.

Sie können benutzerdefinierten Beizcode implementieren, der beispielsweise die Konfiguration einer Datenbankverbindung speichert und anschließend wiederherstellt. Dazu benötigen Sie jedoch eine spezielle benutzerdefinierte Logik.

All dies macht das Beizen viel leistungsfähiger als XML, JSON und Yaml (aber definitiv nicht so lesbar).

Ivo van der Wijk
quelle
1

Beizen ist der Prozess, bei dem die Objekte in Python in eine einfache binäre Darstellung konvertiert werden, mit der dieses Objekt in eine Textdatei geschrieben werden kann, die gespeichert werden kann. Dies dient zum Speichern der Python-Objekte und wird auch als Serialisierung bezeichnet . Daraus können Sie schließen, was De-Serialisierung oder Entpickeln bedeutet.

Wenn wir also sagen, dass ein Objekt auswählbar ist , bedeutet dies, dass das Objekt mit dem Einbaumodul von Python serialisiert werden kann .

Ankit Agrawal
quelle