亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談Python中的閉包

 更新時(shí)間:2015年07月08日 11:43:54   投稿:hebedich  
簡(jiǎn)單說(shuō),閉包就是根據(jù)不同的配置信息得到不同的結(jié)果。再來(lái)看看專(zhuān)業(yè)的解釋:閉包(Closure)是詞法閉包(Lexical Closure)的簡(jiǎn)稱(chēng),是引用了自由變量的函數(shù)。這個(gè)被引用的自由變量將和這個(gè)函數(shù)一同存在,即使已經(jīng)離開(kāi)了創(chuàng)造它的環(huán)境也不例外。

Python中的閉包的概念, 在我看來(lái), 就相當(dāng)于在某個(gè)函數(shù)中又定義了一個(gè)或多個(gè)函數(shù), 內(nèi)層函數(shù)定義了具體的實(shí)現(xiàn)方式, 而外層返回的就是這個(gè)實(shí)現(xiàn)方式, 但并沒(méi)有執(zhí)行, 除非外層函數(shù)調(diào)用的內(nèi)層的實(shí)現(xiàn)方法被執(zhí)行了。至于這個(gè)怎么執(zhí)行, 看下面的例子就知道了

比如:

def sum_outer(x, y):
  def sum_in(z):
    return x + y - z;
  return sum_in #注意, 這里返回的不是sum_in() 只是sum_in的函數(shù)名

 m = sum_outer(3, 4) #3, 4 分別對(duì)應(yīng)x, y,這里的m返回的也只是函數(shù)sum_in的定義,<function __main__.sum_in>
 print m(5) # m對(duì)應(yīng)z, 這個(gè)時(shí)候才是真正sum_in執(zhí)行的時(shí)候

看起來(lái)就像通過(guò)sum_outer 調(diào)用了內(nèi)層的sum_in函數(shù), 多了層代理

其中一種應(yīng)用場(chǎng)景就是可以根據(jù)不同的參數(shù),使用相同的實(shí)現(xiàn)去返回對(duì)應(yīng)不同的結(jié)果,比如, 根據(jù)不同的配置獲取不同的數(shù)據(jù)庫(kù)連接, 或者要求在驗(yàn)證字符串長(zhǎng)度時(shí), 可以根據(jù)不同的最大長(zhǎng)度驗(yàn)證(外層傳遞最大長(zhǎng)度, 內(nèi)層傳遞驗(yàn)證的字符串)。

在抽象化一點(diǎn), 外層定義了一個(gè)環(huán)境, 內(nèi)層則是在該環(huán)境中的要做的事情, 但這個(gè)事情還沒(méi)做,
只是要做。當(dāng)真正需要做的時(shí)候到這個(gè)環(huán)境中去做了就好了(外層的返回結(jié)果(m)執(zhí)行內(nèi)層的函數(shù)sum_in)
實(shí)際上, 直接給函數(shù)傳遞需要的所有參數(shù), 直接返回結(jié)果, 如上面的sum_outer和sum_in, 直接通過(guò)

def sum(x,y,z):
  return x + y - z

不就結(jié)了嗎,為社么還要閉包這個(gè)實(shí)現(xiàn)呢? 到目前來(lái)說(shuō), 只能看出他們是兩種不同的實(shí)現(xiàn)方式, 更多的區(qū)別, 還有待日后的學(xué)習(xí)體驗(yàn)

以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。

相關(guān)文章

  • python編程語(yǔ)言中pathlib模塊簡(jiǎn)介及使用

    python編程語(yǔ)言中pathlib模塊簡(jiǎn)介及使用

    pathlib模塊類(lèi)似os模塊,包含了對(duì)創(chuàng)建和刪除目錄、讀寫(xiě)文件、獲取文件所在目錄不同部分字段、判斷文件是否存在,是否為文件和文件夾、文件統(tǒng)計(jì)和匹配查找,這篇文章主要介紹了python編程語(yǔ)言中pathlib模塊簡(jiǎn)介及使用,需要的朋友可以參考下
    2023-09-09
  • Python爬蟲(chóng)抓取手機(jī)APP的傳輸數(shù)據(jù)

    Python爬蟲(chóng)抓取手機(jī)APP的傳輸數(shù)據(jù)

    大多數(shù)APP里面返回的是json格式數(shù)據(jù),或者一堆加密過(guò)的數(shù)據(jù) 。這里以超級(jí)課程表APP為例,抓取超級(jí)課程表里用戶(hù)發(fā)的話(huà)題
    2016-01-01
  • python+requests接口壓力測(cè)試500次,查看響應(yīng)時(shí)間的實(shí)例

    python+requests接口壓力測(cè)試500次,查看響應(yīng)時(shí)間的實(shí)例

    這篇文章主要介紹了python+requests接口壓力測(cè)試500次,查看響應(yīng)時(shí)間的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • python實(shí)現(xiàn)PolynomialFeatures多項(xiàng)式的方法

    python實(shí)現(xiàn)PolynomialFeatures多項(xiàng)式的方法

    這篇文章主要介紹了python實(shí)現(xiàn)PolynomialFeatures多項(xiàng)式的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Iconfont(矢量圖標(biāo))+iconmoon(圖標(biāo)svg互轉(zhuǎn))配合javascript實(shí)現(xiàn)社交分享系統(tǒng)

    Iconfont(矢量圖標(biāo))+iconmoon(圖標(biāo)svg互轉(zhuǎn))配合javascript實(shí)現(xiàn)社交分享系統(tǒng)

    這篇文章主要介紹了Iconfont(矢量圖標(biāo))+iconmoon(圖標(biāo)svg互轉(zhuǎn))配合javascript實(shí)現(xiàn)社交分享系統(tǒng),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 39條Python語(yǔ)句實(shí)現(xiàn)數(shù)字華容道

    39條Python語(yǔ)句實(shí)現(xiàn)數(shù)字華容道

    這篇文章主要為大家詳細(xì)介紹了39條Python語(yǔ)句實(shí)現(xiàn)數(shù)字華容道,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • PyTorch基礎(chǔ)之torch.nn.CrossEntropyLoss交叉熵?fù)p失

    PyTorch基礎(chǔ)之torch.nn.CrossEntropyLoss交叉熵?fù)p失

    這篇文章主要介紹了PyTorch基礎(chǔ)之torch.nn.CrossEntropyLoss交叉熵?fù)p失講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python with標(biāo)簽使用方法解析

    Python with標(biāo)簽使用方法解析

    這篇文章主要介紹了Python with標(biāo)簽使用方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Matplotlib中rcParams使用方法

    Matplotlib中rcParams使用方法

    這篇文章主要介紹了Matplotlib中rcParams使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • python開(kāi)發(fā)之字符串string操作方法實(shí)例詳解

    python開(kāi)發(fā)之字符串string操作方法實(shí)例詳解

    這篇文章主要介紹了python開(kāi)發(fā)之字符串string操作方法,以實(shí)例形式較為詳細(xì)的分析了Python針對(duì)字符串的轉(zhuǎn)義、連接、換行、輸出等操作技巧,需要的朋友可以參考下
    2015-11-11

最新評(píng)論