【发布时间】:2016-09-05 14:54:37
【问题描述】:
我知道我们在 Python 中传递参数期间传递了对象的引用。
所以,
def changer(b):
b[0] = "spam"
l = [1,2]
changer(l) # l is now ["spam",2]
但是,如果我这样做了,
changer(l[:]) # l remains [1,2]
第二种情况下我传递列表切片时,传递给函数的是什么?
【问题讨论】:
-
您将在第二个示例中传递
l的副本。 -
请注意,此行为并非函数调用独有。如果你这样做
l = [1,2]; b = l[:]; b[0] = "spam"; print(l); print(b),你会看到同样的事情发生