In Python erstellen Zuweisungsoperatoren wie = keine Kopien von Objekten. Stattdessen verweisen sie auf vorhandene Objekte im Speicher. Dieses Verhalten kann zu unbeabsichtigten Folgen führen, wie im folgenden Code gezeigt:
dict_a = dict_b = dict_c = {} dict_c['hello'] = 'goodbye' print(dict_a) print(dict_b) print(dict_c)
Erwartete Ausgabe:
{} {} {'hello': 'goodbye'}
Tatsächliche Ausgabe:
{'hello': 'goodbye'} {'hello': 'goodbye'} {'hello': 'goodbye'}
In diesem Beispielsweise erwarteten wir, drei unabhängige Wörterbücher zu erstellen. Das Ergebnis zeigt jedoch, dass dict_a, dict_b und dict_c alle auf dasselbe Wörterbuchobjekt verweisen. Durch das Zuweisen eines Schlüssels zu dict_c wird das gemeinsame Wörterbuch geändert, was sich in allen drei Variablen widerspiegelt.
Um das gewünschte Verhalten beim Erstellen unabhängiger Kopien zu erreichen, bietet Python mehrere Optionen:
dict_a = {1: 2} dict_b = dict_a.copy() dict_b[3] = 4 print(dict_a) print(dict_b)
Ausgabe:
{1: 2} {1: 2, 3: 4}
import copy dict_a = {1: 2, 'nested': {3: 4}} dict_b = copy.deepcopy(dict_a) dict_b['nested'][5] = 6 print(dict_a) print(dict_b)
Ausgabe:
{1: 2, 'nested': {3: 4}} {1: 2, 'nested': {3: 4, 5: 6}}
Durch die Verwendung dieser Methoden ist es möglich, die Objektzuweisung in Python zu steuern und unbeabsichtigte Änderungen an gemeinsam genutzten Objekten zu verhindern.
Das obige ist der detaillierte Inhalt vonWie funktioniert die Objektzuweisung in Python und wie kann ich unabhängige Kopien erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!