Wie implementiert man persistente Objekte in Python?

WBOY
Freigeben: 2023-09-13 12:41:02
nach vorne
758 Leute haben es durchsucht

Wie implementiert man persistente Objekte in Python?

Um persistente Objekte in Python zu implementieren, verwenden Sie die folgenden Bibliotheken.

  • In den Regalen
  • Kimchi

Regalmodul

Ein „Regal“ ist ein persistentes, wörterbuchähnliches Objekt. Der Unterschied zu einer „dbm“-Datenbank besteht darin, dass die Werte (keine Schlüssel!) in einem Regal im Wesentlichen jedes Python-Objekt sein können – alles, was das Pickle-Modul verarbeiten kann. Dazu gehören die meisten Klasseninstanzen, rekursive Datentypen und Objekte, die eine große Anzahl gemeinsam genutzter Unterobjekte enthalten.

Es gibt einige Schlüsselmethoden -

  • shelve.open() – Öffnet ein persistentes Wörterbuch. Der angegebene Dateiname ist der Basisdateiname der zugrunde liegenden Datenbank. Als Nebeneffekt kann es sein, dass dem Dateinamen eine Erweiterung hinzugefügt wird und mehrere Dateien erstellt werden. Standardmäßig ist die zugrunde liegende Datenbankdatei zum Lesen und Schreiben geöffnet.

  • shelve.sync() − Wenn Shelf aktiviert ist und Writeback auf „True“ gesetzt ist, werden alle Einträge im Cache zurückgeschrieben. Wenn möglich, wird auch der Cache geleert und das persistente Wörterbuch mit den Daten auf der Festplatte synchronisiert. Diese Methode wird automatisch aufgerufen, wenn das Regal mit close() geschlossen wird.

  • shelve.close() − Synchronisieren und schließen Sie das persistente Wörterbuchobjekt.

Pickle-Modul

Das

pickle-Modul implementiert ein Binärprotokoll zum Serialisieren und Deserialisieren von Python-Objekten Struktur.

  • Pickling ist der Prozess der Konvertierung von Python-Objekthierarchien in Bytes fließen. Um eine Objekthierarchie zu serialisieren, rufen Sie einfach die Funktion dumps() auf.

  • Entbeizen ist der umgekehrte Vorgang. Wird aus einer Binärdatei oder einem Byte-Stream wie einem Byte-Objekt analysiert Konvertieren Sie es zurück in die Objekthierarchie. Um den Datenstrom zu deserialisieren, rufen Sie die Funktion „loads()“ auf Funktion.

Pickle-Modulfunktion

Die folgenden Funktionen werden vom Pickle-Modul bereitgestellt.

  • pickle.dump() – Schreibt die Pickle-Darstellung eines Objekts in eine geöffnete Dateiobjektdatei.

  • pickle.dumps() – gibt die Pickle-Darstellung des Objekts statt als Byte-Objekt zurück Schreiben Sie es in eine Datei.

  • pickle.load() – Liest die eingelegte Darstellung eines Objekts aus einer geöffneten Dateiobjektdatei.

  • pickle.loads() – Gibt eine rekonstruierte Objekthierarchie ausgewählter Datendarstellungen zurück Objekt

Beispiel

Importieren Sie zunächst das Pickle-Modul -

import pickle
Nach dem Login kopieren

Wir haben folgende Eingaben zum Beizen erstellt.

my_data = { 'BMW', 'Audi', 'Toyota', 'Benz'}
Nach dem Login kopieren

demo.pickle-Datei wurde erstellt. Dieselbe .pickle-Datei wird mit der obigen Liste gepickelt.

with open("demo.pickle","wb") as file_handle:
   pickle.dump(my_data, file_handle, pickle.HIGHEST_PROTOCOL)
Nach dem Login kopieren

Entfernen Sie nun die oben aufgeführte Datei und rufen Sie die Eingabewerte ab.

with open("demo.pickle","rb") as file_handle:
   res = pickle.load(file_handle)
   print(res_data)
Nach dem Login kopieren

Sehen wir uns nun das vollständige Beispiel an.

import pickle

# Input Data
my_data = { 'BMW', 'Audi', 'Toyota', 'Benz'}

# Pickle the input
with open("demo.pickle","wb") as file_handle:
   pickle.dump(my_data, file_handle, pickle.HIGHEST_PROTOCOL)

# Unpickle the above pickled file
with open("demo.pickle","rb") as file_handle:
   res = pickle.load(file_handle)
   print(my_data) # display the output
Nach dem Login kopieren

Ausgabe

set(['Benz', 'Toyota', 'BMW', 'Audi'])
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie implementiert man persistente Objekte in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!