a = 4
def foo(x):
a = 10
foo(2)
print(a)
#prints 4
上面的代码没有改变a
a = 4
def foo(x):
return a + x
result = foo(10)
print(result)
#prints out 14
我不太明白这两者的行为有何不同。第二个,全局变量明显影响了foo
中的局部变量。但是,如果我在 foo
中的第一个中更改 a
,则全局框架中的 a
不会发生任何变化。发生了什么事?
最佳答案
如果你想在函数内改变一个全局变量,你应该使用global
关键字:
a = 4
def foo(x):
global a
a = 10
foo(2)
print(a) # prints 10
另见:
关于python - 在用户定义的函数中访问全局框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18882955/