第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

'閉包'和'lambda'有什么區(qū)別?

'閉包'和'lambda'有什么區(qū)別?

'閉包'和'lambda'有什么區(qū)別?有人能解釋一下嗎 我理解它們背后的基本概念,但我經(jīng)??吹剿鼈兓Q使用,我感到困惑。現(xiàn)在我們在這里,它們與常規(guī)功能有什么不同?
查看完整描述

3 回答

?
蝴蝶刀刀

TA貢獻(xiàn)1801條經(jīng)驗 獲得超8個贊

一個拉姆達(dá)只是一個匿名函數(shù)-沒有名字定義的函數(shù)。在某些語言中,例如Scheme,它們等同于命名函數(shù)。實際上,函數(shù)定義被重寫為在內(nèi)部將lambda綁定到變量。在其他語言中,如Python,它們之間存在一些(相當(dāng)不必要的)區(qū)別,但它們的行為方式相同。

閉合是任何功能關(guān)閉以上環(huán)境中,它被定義。這意味著它可以訪問不在其參數(shù)列表中的變量。例子:

def func(): return hdef anotherfunc(h):
   return func()

這將導(dǎo)致錯誤,因為func關(guān)閉環(huán)境anotherfunch未定義。func只關(guān)閉全球環(huán)境。這將有效:

def anotherfunc(h):
    def func(): return h
    return func()

因為在這里func定義anotherfunc,并且在python 2.3和更高版本(或者像這樣的一些數(shù)字)中,當(dāng)它們幾乎使閉包正確時(變異仍然不起作用),這意味著它關(guān)閉了 anotherfunc環(huán)境并且可以訪問內(nèi)部的變量。它。在Python 3.1+,突變使用時也工作nonlocal關(guān)鍵詞

另一個重要的觀點 - 即使不再被評估,func也會繼續(xù)關(guān)閉anotherfunc環(huán)境anotherfunc。此代碼也適用:

def anotherfunc(h):
    def func(): return h
    return funcprint anotherfunc(10)()

這將打印10。

正如您所注意到的,這與lambda無關(guān)- 它們是兩個不同的(雖然相關(guān))概念。


查看完整回答
反對 回復(fù) 2019-07-25
  • 3 回答
  • 0 關(guān)注
  • 843 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號