亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

你能解釋一下閉包(因為它們與Python有關)嗎?

你能解釋一下閉包(因為它們與Python有關)嗎?

素胚勾勒不出你 2019-08-16 14:07:13
你能解釋一下閉包(因為它們與Python有關)嗎?我一直在閱讀很多關于閉包的內容,我認為我理解它們,但是沒有為自己和他人蒙上陰影,我希望有人可以盡可能簡潔明了地解釋閉包。我正在尋找一個簡單的解釋,可以幫助我理解我想要使用它們的地點和原因。
查看完整描述

3 回答

?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

它很簡單:一個函數引用包含范圍的變量,可能在控制流離開該范圍之后。最后一點非常有用:

>>> def makeConstantAdder(x):...     constant = x...     def adder(y):...         return y + constant...     return adder... >>> f = makeConstantAdder(12)>>> f(3)15>>> g = makeConstantAdder(4)>>> g(3)7

請注意,12和4分別在f和g內部“消失”,這個特性使f和g適當閉合。


查看完整回答
反對 回復 2019-08-16
?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

我喜歡這個粗略,簡潔的定義

可以引用不再活動的環境的函數。

我補充一下

閉包允許您將變量綁定到函數中,而不將它們作為參數傳遞。

接受參數的裝飾器是閉包的常用用途。閉包是這種“功能工廠”的常見實現機制。在運行時通過數據修改策略時,我經常選擇在策略模式中使用閉包。

在允許匿名塊定義的語言中 - 例如,Ruby,C# - 閉包可用于實現(多少)新穎的新控制結構。缺少匿名塊是Python中閉包的限制之一


查看完整回答
反對 回復 2019-08-16
  • 3 回答
  • 0 關注
  • 440 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號