哪位大神帮忙看一下,小白不是很懂这里,x = 5是局部变量还是全局变量?

2020-06-01 11:23发布

def a():
x = 5
def b():
x = 4
print(x)
return b()

a()
4

def 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 assignment

def a():
x = 5
def b():
y = x + 5
print(y)
return b()

a()
10

3条回答
我命由我不由天
2楼-- · 2020-06-01 11:42

已经懂了。程序在读代码的时候发现等号左边有一个与全局变量名一样的x,就把a函数里面x=5屏蔽了,然后等号右边x就找不到对应x变量的值。所以会报错 ‘在赋值前引用’

查看更多
Luminary・发光体
3楼-- · 2020-06-01 11:42

局部,声明一个glboal,在外部使用才会看到修改。例如 global x = 5

查看更多
一夜七次
4楼-- · 2020-06-01 11:50

你这是python吗?麻烦截图吗?因为你这个代码看的晕,而python对空格比较敏感。

查看更多
登录 后发表回答