【发布时间】:2018-04-16 12:55:33
【问题描述】:
这是我的代码:
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 变量和赋值:nedbatchelder.com/text/names.html
-
另外,您可能认为您使用的是 Python 3,但
print输出表明您不是。 (Python 3 会打印出[9] 10。) -
谢谢,这有帮助! self.x = list(x) 解决了它
标签: python python-3.x object instance instance-variables