黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

python:nonlocal的用法,global與nonlocal的區(qū)別

系統(tǒng) 1979 0

在python中內(nèi)嵌函數(shù)可以引用外層函數(shù)作用域中的變量,并且可以通過(guò)某種操作來(lái)對(duì)其進(jìn)行修改。
這里我們就可以使用到nonlocal語(yǔ)句來(lái)進(jìn)行聲名。我之前寫(xiě)過(guò)一篇global用法的文章,nonlocal的用法與global的用法很像,本篇博客的后面就會(huì)講一下nonlocal和global的區(qū)別。

nonlocal語(yǔ)句的用法

語(yǔ)法:
允許內(nèi)嵌函數(shù)修改定義在語(yǔ)法上位于外層的函數(shù)的作用域中的一個(gè)或者多個(gè)名稱

用法:
nonlocal[變量名]

注意:
此語(yǔ)句僅適用于python3,在python2中內(nèi)嵌函數(shù)可以使用外層作用域中通過(guò)賦值的所有名稱,但不能進(jìn)行修改;python3則可以使用并且可以進(jìn)行修改。

語(yǔ)法實(shí)現(xiàn):

            
              
                def
              
              
                dome_fun
              
              
                (
              
              
                )
              
              
                :
              
              
    num 
              
                =
              
              
                0
              
              
                def
              
              
                dome_fun_1
              
              
                (
              
              
                )
              
              
                :
              
              
                nonlocal
              
               num
        num 
              
                +=
              
              
                1
              
              
                return
              
               num
    
              
                return
              
               num

            
          

在這段dome里面,變量num既不是全局變量,也不是局部變量,而是外部?jī)?nèi)嵌函數(shù)的變量。

nonlocal與global的區(qū)別

在談到nonlocal與global的區(qū)別之前,我們應(yīng)該了解python中引用變量的順序是什么樣的。

python變量引用順序:從當(dāng)前作用域開(kāi)始尋找變量,如果沒(méi)找到就往上一層作用域?qū)ふ遥瑳](méi)找到就再上一層。

具體步驟:當(dāng)前作用域局部變量->外層作用域變量->再外層作用域變量->…->當(dāng)前模塊全局變量->pyhton內(nèi)置變量

1、作用對(duì)象不同:

nonlocal作用于外部?jī)?nèi)嵌函數(shù)的變量;

global作用于全局變量。

2、global可以改變?nèi)肿兞浚瑫r(shí)可以定義新的全局變量;nonlocal只能改變外層函數(shù)變量,不能定義新的外層函數(shù)變量,并且nonlocal也不能改變?nèi)肿兞俊?

3、聲名:

global聲名此變量為全局變量;nonlocal聲名此變量與外層同名變量為相同的變量。

4、使用的范圍不同:

global關(guān)鍵字可以用在任何地方,包括最上層函數(shù)中和嵌套函數(shù)中;

nonlocal關(guān)鍵字只能用于嵌套函數(shù)中,并且外層函數(shù)中必須定義了相應(yīng)的局部變量,否則會(huì)發(fā)生錯(cuò)誤


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論