菜鸟求助内嵌函数问题
def fun1():x=5
def fun2():
x*=x
return x
return fun2()
>>> fun1()
Traceback (most recent call last):
File "<pyshell#51>", line 1, in <module>
fun1()
File "<pyshell#50>", line 6, in fun1
return fun2()
File "<pyshell#50>", line 4, in fun2
x*=x
UnboundLocalError: local variable 'x' referenced before assignment
想问下为啥这里会报错呢 函数1规定x=5 函数2算出x=25后返回x 但是就报错 我看答案里加了个nonlocal 不知道加了这个Nonlocal意味着什么 nonlocal声明的变量不是局部变量,也不是全局变量,而是外部嵌套函数内的变量。 本帖最后由 jackz007 于 2021-9-26 16:25 编辑
def fun1():
x=5
def fun2():
nonlocal x#如果要对外部变量赋值,必须事先声明外部变量,否则,外部变量只读,不可以被赋值
x*=x
return x
return fun2()
当然,这样写,不用声明外部变量也可以
def fun1():
x = 5
def fun2():
return x * x
return fun2()
页:
[1]