„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie erstelle ich wirklich unabhängige Kopien von Objekten in Python?

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

Veröffentlicht am 16.11.2024
Durchsuche:572

How to Create Truly Independent Copies of Objects in Python?

Objekte in Python duplizieren: Eine umfassende Anleitung

Das Erstellen von Objektkopien 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 am Original vorgenommenen Änderungen 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:

original_list = [1, 2, 3]
new_list = original_list[:]  # Shallow copy

Während new_list und original_list als separate Objekte erscheinen, 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:

import copy

original_list = [1, 2, [4, 5]]
new_list = copy.deepcopy(original_list)

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

new_list[2].append(6)
print(original_list)  # Output: [1, 2, [4, 5]]
print(new_list)       # Output: [1, 2, [4, 5, 6]]

Schlussfolgerung

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

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3