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

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

DDD
DDDOriginal
2024-11-03 17:05:03895Durchsuche

How to Create Truly Independent Copies of Objects in Python?

Objekte in Python duplizieren: Eine umfassende Anleitung

Das Erstellen von Kopien von Objekten ist eine grundlegende Aufgabe in der Python-Programmierung, insbesondere beim Umgang mit komplexen Daten Strukturen. Dieser Artikel befasst sich mit den Feinheiten des Objektkopierens in Python und konzentriert sich insbesondere auf die Erstellung unabhängiger Objekte, die von Änderungen am Original nicht betroffen sind.

Flaches und tiefes Kopieren

In Python gibt es zwei Hauptmethoden zum Kopieren von Objekten: flaches Kopieren und tiefes Kopieren. Durch flaches Kopieren wird ein neues Objekt erstellt, das auf dieselben unveränderlichen Felder (z. B. Ganzzahlen, Zeichenfolgen) wie das Original verweist, jedoch neue Kopien veränderlicher Felder (z. B. Listen, Wörterbücher) erstellt.

Bedenken Sie beispielsweise Folgendes Codeausschnitt:

<code class="python">original_list = [1, 2, 3]
new_list = original_list[:]  # Shallow copy</code>

Während new_list und original_list getrennte Objekte zu sein scheinen, werden alle an einer Liste vorgenommenen Änderungen in der anderen widergespiegelt, da beide auf dieselben zugrunde liegenden Daten verweisen.

Völlig unabhängige Objekte erstellen

Um wirklich unabhängige Objekte zu erstellen, müssen wir auf tiefes Kopieren zurückgreifen. Dazu gehört die Erstellung einer neuen Kopie jedes Feldes, einschließlich verschachtelter veränderlicher Strukturen. Die Funktion copy.deepcopy() von Python bietet diese Funktionalität.

Ändern wir unser vorheriges Beispiel:

<code class="python">import copy

original_list = [1, 2, [4, 5]]
new_list = copy.deepcopy(original_list)</code>

Wenn wir nun eine Änderung an new_list vornehmen, hat dies keine Auswirkungen auf original_list:

<code class="python">new_list[2].append(6)
print(original_list)  # Output: [1, 2, [4, 5]]
print(new_list)       # Output: [1, 2, [4, 5, 6]]</code>

Fazit

Durch die Nutzung der Funktion copy.deepcopy() können Programmierer völlig unabhängige Kopien von Objekten erstellen und so sicherstellen, dass an einem Objekt vorgenommene Änderungen sich nicht auf das andere auswirken . Das Verständnis des Unterschieds zwischen flachem und tiefem Kopieren ist für eine effektive Objektmanipulation in Python von entscheidender Bedeutung.

Das obige ist der detaillierte Inhalt vonWie erstelle ich wirklich 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