作者h888512 (速球胜负 + 45度角绝杀)
看板Python
标题[问题] 闭包(closure)的用法或意义
时间Fri Sep 13 20:53:38 2019
各位先进好
小弟最近看Lubanovic的Python教科书, 描述闭包的部分, 不是很懂其意义
如下:
def knights5(saying):
def inner2():
return "We are the knights who say: '%s'" % saying
return inner2
我知道会回传夹带外部引数的inner2()函式
但具体上这样的东西意义或用法或优点是什麽呢?
作者在这边写的内容小弟不是很能理会
有请大家解惑, 感谢~~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.37.83.117 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1568379223.A.DE9.html
1F:推 CaptainH: 闭包=保存状态 09/13 21:27
2F:推 CaptainH: 完全可以想像成宣告一个匿名的class并即时建构 09/13 21:30
3F:→ s860134: 好处就是把 function 丢进去後得到另外一个 function 09/13 23:30
4F:→ s860134: 意思就是我可以动态的对 function 行为做加工 09/13 23:30
5F:推 TitanEric: 之後你应该会看到decorator 很有趣又实用的东西 09/14 01:53
6F:推 yushes920179: 去看看装饰器 09/14 19:47
7F:→ h888512: 了解 那我先往下看了 09/15 18:30
8F:推 sxy67230: closure要跟decorator一起看比较实用,不过closure在数 09/22 10:21
9F:→ sxy67230: 学上比较符合直觉,像f(g(x))的用法。 09/22 10:21
10F:推 sxy67230: 然後一定会有人提到lambda,但lambda只提供一个statemen 09/22 10:32
11F:→ sxy67230: t ,所以你的function 够复杂的话,那closure 会是比较 09/22 10:32
12F:→ sxy67230: 好的表达式就是了。closure 比较是属於JavaScript 的概 09/22 10:32
13F:→ sxy67230: 念,可以顺便了解JavaScript 你会更懂closure。 09/22 10:32