最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python進階學習修改閉包內(nèi)使用的外部變量

 更新時間:2022年06月17日 11:03:08   作者:落雨  
這篇文章主要為大家介紹了Python進階學習修改閉包內(nèi)使用的外部變量實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

修改閉包內(nèi)使用的外部變量

錯誤示例:

# 定義一個外部函數(shù)
def func_out(num1):
    # 定義一個內(nèi)部函數(shù)
    def func_inner(num2):
        # 這里本意想要修改外部num1的值,實際上是在內(nèi)部函數(shù)定義了一個局部變量num1
        num1 = 10
        # 內(nèi)部函數(shù)使用了外部函數(shù)的變量(num1)
        result = num1 + num2
        print("結(jié)果是:", result)
    print(num1)
    func_inner(1)
    print(num1)
    # 外部函數(shù)返回了內(nèi)部函數(shù),這里返回的內(nèi)部函數(shù)就是閉包
    return func_inner
# 創(chuàng)建閉包實例
f = func_out(1)
# 執(zhí)行閉包
f(2)

錯誤示例:

# 定義一個外部函數(shù)
def func_out(num1):
    # 定義一個內(nèi)部函數(shù)
    def func_inner(num2):
        # 這里本意想要修改外部num1的值,實際上是在內(nèi)部函數(shù)定義了一個局部變量num1
        nonlocal num1  # 告訴解釋器,此處使用的是 外部變量a
        # 修改外部變量num1
        num1 = 10
        # 內(nèi)部函數(shù)使用了外部函數(shù)的變量(num1)
        result = num1 + num2
        print("結(jié)果是:", result)
    print(num1)
    func_inner(1)
    print(num1)
    # 外部函數(shù)返回了內(nèi)部函數(shù),這里返回的內(nèi)部函數(shù)就是閉包
    return func_inner
# 創(chuàng)建閉包實例
f = func_out(1)
# 執(zhí)行閉包
f(2)

小結(jié)

修改閉包內(nèi)使用的外部函數(shù)變量使用 nonlocal 關(guān)鍵字來完成。

閉包與閉包中修改外部變量

在函數(shù)嵌套的前提下,內(nèi)部函數(shù)引用了外部函數(shù)的變量,并且外部函數(shù)返回(return)了內(nèi)部函數(shù),即外部函數(shù)返回了引用了外部函數(shù)變量的內(nèi)部函數(shù),這時我們稱內(nèi)部函數(shù)為閉包。 比如說如下例子:

# 外部函數(shù)
def func_outer(a):
    # 內(nèi)部函數(shù)
    def func_inner(b):
        c = a + b
        return c
    return func_inner
# 創(chuàng)建閉包實例
f = func_outer(1)
# 執(zhí)行閉包
num1 = f(2)
num2 = f(3)
print(num1)
print(num2)

在這里,f就叫做閉包的實例,func_inner函數(shù)就叫做閉包 此時執(zhí)行結(jié)果如下:

可以見得,f里封存了外部函數(shù)的變量1,當閉包實例建立出來,再實行閉包實例,此時相當于1+2和1+3,得到了如上結(jié)果。 使用debug可以查看到,執(zhí)行完f = func_outer(1)代碼后,此時一個函數(shù)對象已經(jīng)保存在內(nèi)存當中:

當一開始步入代碼num1 = f(2)(實行閉包)后:

一個外部函數(shù).內(nèi)部函數(shù)的對象存儲在了內(nèi)存中,注意:在執(zhí)行完f = func_outer(1)并沒有立即產(chǎn)生這樣一個對象,而是在調(diào)用時才會產(chǎn)生該對象 這時,再步入內(nèi)部函數(shù):

這樣c=3便出現(xiàn)了,此時在打印c就會出現(xiàn)3,4的出現(xiàn)與3的原理一樣

修改外部函數(shù)的變量

代碼如下:

# 外部函數(shù)
def func_outer(a):
    # 內(nèi)部函數(shù)
    def func_inner(b):
        nonlocal a
        a = 2
        c = a + b
        return c
    return func_inner
# 創(chuàng)建閉包實例
f = func_outer(1)
# 執(zhí)行閉包
num1 = f(2)
num2 = f(3)
print(num1)
print(num2)

多了一行nonlocal a 這里的nonlocal關(guān)鍵字是聲明我這里用的是外部的a,而不是自己新定義的局部變量a

以上就是Python進階學習修改閉包內(nèi)使用的外部變量的詳細內(nèi)容,更多關(guān)于Python修改閉包內(nèi)外部變量的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python操作csv文件實例詳解

    Python操作csv文件實例詳解

    這篇文章主要為大家詳細介紹了Python操作csv文件的實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Python網(wǎng)絡(luò)編程中urllib2模塊的用法總結(jié)

    Python網(wǎng)絡(luò)編程中urllib2模塊的用法總結(jié)

    使用urllib2模塊進行基于url的HTTP請求等操作大家也許都比較熟悉,這里我們再深入來了解一下urllib2針對HTTP的異常處理相關(guān)功能,一起來看一下Python網(wǎng)絡(luò)編程中urllib2模塊的用法總結(jié):
    2016-07-07
  • Python程序員面試題 你必須提前準備!

    Python程序員面試題 你必須提前準備!

    Python程序員面試,這些問題你必須提前準備!供廣大Python程序員參考,預祝大家順利通過面試。
    2018-01-01
  • python實現(xiàn)飛行棋游戲

    python實現(xiàn)飛行棋游戲

    這篇文章主要為大家詳細介紹了python實現(xiàn)飛行棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • Python帶參數(shù)的裝飾器運行原理解析

    Python帶參數(shù)的裝飾器運行原理解析

    這篇文章主要介紹了Python帶參數(shù)的裝飾器運行原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • 詳解PANDAS 數(shù)據(jù)合并與重塑(join/merge篇)

    詳解PANDAS 數(shù)據(jù)合并與重塑(join/merge篇)

    這篇文章主要介紹了詳解PANDAS 數(shù)據(jù)合并與重塑(join/merge篇),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • Python實現(xiàn)替換文件中指定內(nèi)容的方法

    Python實現(xiàn)替換文件中指定內(nèi)容的方法

    這篇文章主要介紹了Python實現(xiàn)替換文件中指定內(nèi)容的方法,涉及Python文件讀寫、字符串替換等相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03
  • 如何使用Numpy創(chuàng)建三維矩陣

    如何使用Numpy創(chuàng)建三維矩陣

    這篇文章主要介紹了如何使用Numpy創(chuàng)建三維矩陣問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Python Tkinter Menu控件使用詳解

    Python Tkinter Menu控件使用詳解

    Menu控件(菜單控件)可以說是 GUI 中“精髓所在”,它以可視化的方式將一系列的命令進行分組,在每一個分組下又可以“隱藏”許多的程序執(zhí)行命令(即功能)。本文將詳細介紹它的使用,需要的可以參考一下
    2022-01-01
  • python 求1-100之間的奇數(shù)或者偶數(shù)之和的實例

    python 求1-100之間的奇數(shù)或者偶數(shù)之和的實例

    今天小編就為大家分享一篇python 求1-100之間的奇數(shù)或者偶數(shù)之和的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06

最新評論

政和县| 石柱| 海盐县| 徐汇区| 格尔木市| 巴林右旗| 绍兴市| 太仓市| 奈曼旗| 土默特右旗| 绥中县| 黑河市| 开远市| 株洲县| 巫溪县| 荆州市| 确山县| 丰台区| 双峰县| 长汀县| 息烽县| 当雄县| 温州市| 宝兴县| 珲春市| 桃园县| 剑川县| 融水| 墨江| 甘南县| 新源县| 宁明县| 如皋市| 武平县| 汝阳县| 温宿县| 东至县| 南昌县| 双鸭山市| 上饶市| 南乐县|