课堂里有个地方不是特别理解,请指教。
来源:11-13 闭包的经典误区

蒋一筒
2019-02-14
课堂里我们检验 f1 是否为闭包的时候,并不是直接print(f1.closure),而是增加了一步,将函数 f1 赋值给变量 f。于是我非常好奇地去 print(f1.closure),发现结果竟然是 None。我有两点疑问:
- 请问这里的 f = f1() 的作用是什么?
- 请问 print(f1.closure) 的结果是 None?
我突然想到一点思路:
- f = f1 是为了接受内部函数 f2。
- print(f1.closure) 结果是None,是因为 f1 根本不是闭包函数。f2 才是闭包函数。我们使用变量 f 接收 f1 就是为了调用内部函数 f1 进行判断。如果直接在模块中调用内部函数 f2 是根本行不通的。
请问这个逻辑是否 make sense?
写回答
1回答
-
7七月
2019-02-14
首先你告诉我 f1()和f1的区别是什么?不调用怎么得到闭包?
032019-02-18
相似问题