Heim >Backend-Entwicklung >Python-Tutorial >Wie erstelle ich unabhängige Kopien von Objekten in Python?

Wie erstelle ich unabhängige Kopien von Objekten in Python?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-03 17:37:29723Durchsuche

How to Create Independent Copies of Objects in Python?

Kopieren von Objekten in Python: Unabhängige Instanzen

Problemstellung:

In Python kann es vorkommen, dass eine Kopie eines Objekts erstellt wird scheinen so einfach zu sein wie die Zuordnung eines Objekts zu einem anderen. Diese einfache Zuweisung erstellt jedoch einen Verweis auf das ursprüngliche Objekt anstelle einer neuen unabhängigen Instanz. Änderungen an einem Objekt werden auf das andere übertragen. Dies kann zu unerwartetem Verhalten und potenziellen Fehlern führen.

Lösung: Deep Copying mit copy.deepcopy()

Um eine wirklich unabhängige Kopie eines Objekts zu erstellen, verwenden wir die Funktion copy.deepcopy() aus dem Kopiermodul. Diese Funktion führt eine tiefe Kopie durch und kopiert rekursiv alle Attribute und untergeordneten Objekte des Originalobjekts. Die resultierende Kopie ist ein unabhängiges Objekt mit eigenem Speicherort und eigenen Werten.

Beispiel:

<code class="python">import copy

original_obj = {'name': 'Alice', 'age': 30}
copy_obj = copy.deepcopy(original_obj)

copy_obj['name'] = 'Bob'  # Modify copy

print(original_obj)  # Output: {'name': 'Alice', 'age': 30} (Unchanged)
print(copy_obj)  # Output: {'name': 'Bob', 'age': 30} (Independent)</code>

In diesem Fall ist copy_obj wirklich unabhängig von original_obj. Die Änderung eines Objekts wirkt sich nicht auf das andere aus. Dadurch können Sie mehrere Objekte mit unterschiedlichen Werten erstellen und dabei dieselben Anfangseigenschaften teilen.

Hinweis:

Flaches Kopieren, das kann Dies kann mit copy.copy() erreicht werden, kopiert nur die Werte der Datenstruktur und lässt alle enthaltenen Referenzen unverändert. Tiefenkopien werden im Allgemeinen bevorzugt, um die Objektunabhängigkeit sicherzustellen.

Das obige ist der detaillierte Inhalt vonWie erstelle ich unabhängige Kopien von Objekten in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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