关于内嵌函数变量作用域的问题
Adef outside():
var=5
def inside():
print(var)
inside()
outside()
B
def outside():
var=5
def inside():
print(var)
var=3
inside()
outside()
A没有报错,B报错,小甲鱼给的理由是变量var没有被定义就拿来使用,外层函数有个同名变量,python保护变量作用域,所以外层的var无法被访问,所以报错,但是如果var没被定义,那A的print(var)的var不是也没被定义吗,为什么还能打印 变量var没有被定义就拿来使用,外层函数有个同名变量,python保护变量作用域,所以外层的var无法被访问可以访问,但赋值是不允许的,如果要赋值需要加上nonlocal var 满意请选最佳哦~{:10_297:} 本帖最后由 支离疏哈哈哈 于 2020-5-2 12:07 编辑
永恒的蓝色梦想 发表于 2020-5-2 11:58
可以访问,但赋值是不允许的,如果要赋值需要加上
那为啥小甲鱼说不能访问?他说错了吗 支离疏哈哈哈 发表于 2020-5-2 12:04
那为啥小甲鱼说不能访问?他说错了吗
如果确实是这么说的,那么他就错了
页:
[1]