Hier ist mein Code:Ändern Instanzvariablen in Python ändert sich auch die ursprüngliche Liste
class Foo(object):
def __init__(self, x, y):
self.x = x
self.y = y
def func(self):
self.x[0] -= 1
self.y -= 1
x = [10]
y = 10
a = Foo(x, y)
a.func()
print(x, y)
Ausgang ist ([9], 10)
. Warum ändert das Übergeben einer Liste an eine Instanzvariable und das Ändern der Instanzvariable auch die ursprüngliche Liste, aber nicht die ursprüngliche Ganzzahl?
Wie übergibt man eine Liste an eine Instanzvariable in Python und ändert dann die Instanzvariable, ohne die ursprüngliche Liste zu beeinflussen?
Haben Sie eine Kurzanleitung zu Python-Variablen und Zuweisung: https://nedbatchelder.com/text/names.html – user2357112
Sie könnten auch denken, dass Sie auf Python 3 sind, aber diese 'Print'-Ausgabe sagt, dass Sie nicht sind . (Python 3 hätte "[9] 10" gedruckt.) – user2357112
Danke, das hat geholfen! self.x = Liste (x) löste es –