x = 5
def foobar():
print (x) #Prints global value of x, which is 5
x = 1 #assigns local variable x to 1
foobar()
相反,它会抛出
UnboundLocalError: local variable 'x' referenced before assignment
我在评论中误解了什么?请注意,我知道如果我执行x = x + 1,则会由于“在定义之前访问本地作用域x的值”而抛出错误,但是在这种情况下,我正在执行x = 1,这不需要读取x的现值!这不是重复的问题。
答案 0 :(得分:1)
如果要在python函数中更改全局变量值,则必须这样做
x = 5
def foobar():
global x
print (x) #Prints global value of x, which is 5
x = 1 #assigns local variable x to 1
foobar()