【问题标题】:Modifying global variable from within function that have the same parameter name in python在python中从具有相同参数名称的函数中修改全局变量
【发布时间】:2016-10-04 11:31:42
【问题描述】:
我有这个功能:
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]
【问题讨论】:
标签:
function
python-3.x
global-variables
【解决方案1】:
如果您的目标是将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]
【解决方案2】:
问题是你覆盖了变量L,而不是修改它。你可以使用
L[:] = [4,5,6]
而不是
L = [4,5,6]