看板 Python 關於我們 聯絡資訊
各位先進好 小弟最近看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://www.ptt.cc/bbs/Python/M.1568379223.A.DE9.html
CaptainH: 閉包=保存狀態 09/13 21:27
CaptainH: 完全可以想像成宣告一個匿名的class並即時建構 09/13 21:30
s860134: 好處就是把 function 丟進去後得到另外一個 function 09/13 23:30
s860134: 意思就是我可以動態的對 function 行為做加工 09/13 23:30
TitanEric: 之後你應該會看到decorator 很有趣又實用的東西 09/14 01:53
yushes920179: 去看看裝飾器 09/14 19:47
h888512: 了解 那我先往下看了 09/15 18:30
sxy67230: closure要跟decorator一起看比較實用,不過closure在數 09/22 10:21
sxy67230: 學上比較符合直覺,像f(g(x))的用法。 09/22 10:21
sxy67230: 然後一定會有人提到lambda,但lambda只提供一個statemen 09/22 10:32
sxy67230: t ,所以你的function 夠複雜的話,那closure 會是比較 09/22 10:32
sxy67230: 好的表達式就是了。closure 比較是屬於JavaScript 的概 09/22 10:32
sxy67230: 念,可以順便了解JavaScript 你會更懂closure。 09/22 10:32