を変更する私のコードです:変更するインスタンス変数は、ここで元のリストに
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)
出力が([9], 10)
です。インスタンス変数にリストを渡してからインスタンス変数を変更すると、元のリストも変更されますが、元のリストは変更されません。
リストをPythonのインスタンス変数に渡して元のリストに影響を与えずにインスタンス変数を変更するにはどうすればよいですか?
Pythonの変数と割り当てのクイックガイドを持っています:https://nedbatchelder.com/text/names.html – user2357112
また、Python 3を使っていると思うかもしれませんが、 'print'という出力はあなたが。 (Python 3は '[9] 10'を出力します) – user2357112
ありがとう、これが助けになりました! self.x = list(x)はそれを解いた –