在python中修改具有相同参数名的函数内部的全局变量



我有这个函数:

def applychange(L):
    result=3+2
    L=[4,5,6]
    return result
L = [1,2,3]
print(applychange(L))
print(L)

,结果是:

5
[1, 2, 3]

如何将L变量更改为新值以获得此结果:

5
[4, 5, 6]

如果您的目标是将L修改为全局变量,则需要这样声明它。
为了使代码按预期运行,在函数的result赋值之后插入global L
此外,不需要为了修改L而将L传递给函数。

def applychange():
    result = 3 + 2
    global L
    L = [4, 5, 6]
    return result
L = [1, 2, 3]
print(applychange())
print(L)

这样写的代码将得到预期的输出:

5
[4, 5, 6]

问题是您覆盖了变量L,而不是修改它。你可以使用

L[:] = [4,5,6]
不是

L = [4,5,6]

相关内容

  • 没有找到相关文章

最新更新