und zwar habe ich eine Frage zu den folgenden Beispielen
Code: Alles auswählen
class P:
def __init__(self, x):
self._x = x
def my_func(self):
y = self._x
y = 6
return y
obj = P(5)
out = obj.my_func()
print(out)
print(obj._x)
5
6
Wenn ich nun das gleiche Prinzip auf ein 'dict' anwende dann ändert sich das ganze wie folgt
Code: Alles auswählen
class P:
def __init__(self, x):
self._x = {'A': 0, 'B': 0, 'C': 0}
def my_func(self):
y = self._x
y['A'] = 10
return y
obj = P(5)
out = obj.my_func()
print(out)
print(obj._x)
{'A': 10, 'B': 0, 'C': 0}
{'A': 10, 'B': 0, 'C': 0}
Anstatt eine Kopie für y anzulegen sieht es so aus als wäre y eine Art Pointer auf x und damit ändern sich nun beide Variablen. Zuvor war das aber nicht der Fall.
Kann mir bitte jemand helfen zu verstehen warum und wie ich hier am besten weitermache? Danke.