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

时间:2016-10-04 11:31:42

标签: function python-3.x global-variables

我有这个功能:

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]

2 个答案:

答案 0 :(得分:1)

如果您的目标是将L修改为全局变量,则需要将其声明为此 要使代码按预期运行,请在功能中global L分配后插入result 此外,无需将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]

答案 1 :(得分:0)

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

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

而不是

L = [4,5,6]