Heim > Artikel > Backend-Entwicklung > Wie erstelle ich unabhängige Kopien von Objekten in Python?
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!