关于闭包的定义不能是全局变量的问题

来源: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所以他是没有内容的

0
0

Python3.8系统入门+进阶 (程序员必备第二语言)

语法精讲/配套练习+思考题/原生爬虫实战

14446 学习 · 4438 问题

查看课程