关于闭包的定义不能是全局变量的问题
来源:11-11 什么是闭包
光荣交白卷哥
2018-08-01
a = 25
def curve_pre():
def curve(x):
return a * x * x
return curve
a = 10
f = curve_pre()
print(f(2))
老师您说的问题是如果是全局变量的话,那么他就形成不了闭包。但是我刚才尝试了一下修改局部变量的a,发现a也是会变化的,请问一下是什么原因呢
写回答
1回答
-
光荣交白卷哥
提问者
2018-08-01
我已经知道问题的答案了,用哪个f.__closure__变量查看就可以知道是否形成了闭包,当a是全局变量的时候,f.__closure__是nonetype所以他是没有内容的
00
相似问题