def a():
x = 5
def b():
x = 4
print(x)
return b()
a()
4def a():
x = 5
def b():
x = x + 5
print(x)
return b()
a()
Traceback (most recent call last):
File "<pyshell#99>", line 1, in <module>
a()
File "<pyshell#98>", line 6, in a
return b()
File "<pyshell#98>", line 4, in b
x = x + 5
UnboundLocalError: local variable 'x' referenced before assignmentdef a():
x = 5
def b():
y = x + 5
print(y)
return b()
a()
10
标签:
x = 5 是全局还是局部变量
已经懂了。程序在读代码的时候发现等号左边有一个与全局变量名一样的x,就把a函数里面x=5屏蔽了,然后等号右边x就找不到对应x变量的值。所以会报错 ‘在赋值前引用’
局部,声明一个glboal,在外部使用才会看到修改。例如 global x = 5
你这是python吗?麻烦截图吗?因为你这个代码看的晕,而python对空格比较敏感。