当我执行此代码时,“list”参数在主模块中更改,但是“i”。为什么?如何更改模块中的“i”参数?
def func2(list, i):
print (list, i)
list += [4,1]
i += 1
print(list, i)
return
j = 1
l = [0,1]
func2(l, j)
print("---",l , j)
感谢@JBernardo的提示。 真正的解决方案是将变量放在列表中。现在我可以改变这两个论点,这就是我想要的。
def func2(list, i):
print (list, i)
list += [4,1]
i[0] = i[0]+1
print(list, i[0])
return
j = [1]
l = [0,1]
func2(l, j)
print("---",l , j[0])
答案 0 :(得分:2)
列表是可变的。你正在改变他们的内容。数字是不可变的,因此您必须先将其设置为global
才能访问外部范围
def func():
global var1, var2
var1 += [1,2,3]
var2 = 5
var1 = [0, 1]
var2 = 7
func()
在这种情况下,函数不接收任何参数,因为您想要更改全局状态