请问为什么代码 A 没有报错,但代码 B 却报错了?(我就是做个笔记,云储存一下)
代码A
def outside():
var = 5
def inside():
var = 3
print(var)
inside()
outside()
代码B
def outside():
var = 5
def inside():
print(var)
var = 3
inside()
outside()
报错的内容是:UnboundLocalError: local variable 'var' referenced before assignment,说的是变量 var 没有被定义就拿来使用。这里 outside() 函数里有一个 var 变量,但要注意的是,内嵌函数 inside() 也有一个同名的变量,Python 为了保护变量的作用域,故将 outside() 的 var 变量屏蔽起来,因此此时是无法访问到外层的 var 变量的