【发布时间】:2021-06-07 19:28:07
【问题描述】:
我有一个列表,我将其作为参数提供给函数。
在函数内部,我正在更改列表,但我没有使用return 返回列表。
我正在运行该函数并随后打印列表。
异常结果:[]
实际结果:[5]
这怎么可能?
def foo(bar):
for i in range(2):
if bar == []:
bar.append(4)
else:
bar[0] += 1
myvar = []
foo(myvar)
print (myvar)
【问题讨论】:
-
这并不奇怪。
bar被传递给在全局范围内定义的列表。当然改变这个列表会改变它 -
因为,正如您所说,您正在更改函数内部的列表。
-
很奇怪的问题,tbh。 “我正在修改列表,为什么会被修改?”
标签: python list variables scope namespaces