请教,为何上面的是错的,下面没错?
def f1():x=5
def f2():
x=x+1
return x
return f2()
a=f1()
print(a)
------------------------------------------
def f1():
x=5
def f2():
y=x+1
return y
return f2()
a=f1()
print(a) 这是因为在函数内部对变量赋值进行修改后,该变量就会被Python解释器认为是局部变量而非全局变量 你这个是闭包那里的内容吧,x是属于fun1的变量,你在fun2也可以重新声明一个x,但这两个是不一样的,后者属于fun2的内部变量,
内部函数只能对外部函数的变量进行访问,不能修改,要访问要是用 nonlocal 关键字 nonlocal x才行 大马强 发表于 2021-8-1 12:33
你这个是闭包那里的内容吧,x是属于fun1的变量,你在fun2也可以重新声明一个x,但这两个是不一样的,后者属 ...
小甲鱼讲过的
页:
[1]