外層作用域>當(dāng)前模塊中的全局>python內(nèi)置作用域,也就是LEGB。local和enclos" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python函數(shù)的作用域及關(guān)鍵字詳解

系統(tǒng) 1532 0

函數(shù)的作用域

python中的作用域分4種情況:

  • L:local,局部作用域,即函數(shù)中定義的變量;
  • E:enclosing,嵌套的父級(jí)函數(shù)的局部作用域,即包含此函數(shù)的上級(jí)函數(shù)的局部作用域,但不是全局的;
  • G:globa,全局變量,就是模塊級(jí)別定義的變量;
  • B:built-in,系統(tǒng)固定模塊里面的變量,比如int, bytearray等。 搜索變量的優(yōu)先級(jí)順序依次是:作用域局部>外層作用域>當(dāng)前模塊中的全局>python內(nèi)置作用域,也就是LEGB。

local和enclosing是相對(duì)的,enclosing變量相對(duì)上層來說也是local。

作用域產(chǎn)生

在Python中,只有模塊(module),類(class)以及函數(shù)(def、lambda)才會(huì)引入新的作用域,其它的代碼塊(如if、try、for等)是不會(huì)引入新的作用域的;def、class、lambda是可以引入新作用域的。

global關(guān)鍵字

當(dāng)內(nèi)部作用域想修改外部作用域的變量時(shí),就要用到global和nonlocal關(guān)鍵字了,當(dāng)修改的變量是在全局作用域(global作用域)上的,就要使用global先聲明一下

            
count = 10
def outer():
  global count#必須先聲明count為全局變量
  print(count)
  count = 100
  print(count)
outer()  
          

nonlocal關(guān)鍵字

global關(guān)鍵字聲明的變量必須在全局作用域上,不能嵌套作用域上,當(dāng)要修改嵌套作用域(enclosing作用域,外層非全局作用域)中的變量時(shí)就需要nonlocal關(guān)鍵字了

            
def outer():
  count = 10
  def inner():
    nonlocal count #此時(shí)count非全局變量,不能用global聲明,需要用到nonlocal關(guān)鍵字
    count = 20
    print(count)
  inner()
  print(count)
outer()
          

作用域小結(jié)

(1)變量查找順序:LEGB,作用域局部>外層作用域>當(dāng)前模塊中的全局>python內(nèi)置作用域;

(2)只有模塊、類、及函數(shù)才能引入新作用域;

(3)對(duì)于一個(gè)變量,內(nèi)部作用域先聲明就會(huì)覆蓋外部變量,不聲明直接使用,就會(huì)使用外部作用域的變量;

(4)內(nèi)部作用域要修改外部作用域變量的值時(shí),全局變量要使用global關(guān)鍵字,嵌套作用域變量要使用nonlocal關(guān)鍵字。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

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

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

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

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 特黄特a级特别特级特毛片 特黄特黄aaaa级毛片免费看 | 日本一区精品久久久久影院 | 中文字幕在线观看2023 | 欧美日韩亚洲第一页 | 四虎影视4hutv最新地址在线 | 日韩免费一级毛片欧美一级日韩片 | 久久综合九色综合欧美狠狠 | 日本中文字幕在线观看视频 | 国产一区二区不卡视频 | 精品日韩二区三区精品视频 | 亚洲欧洲一区二区 | 久久青草免费免费91线频观看 | 久久99精品国产 | 日本一级一片免费 | 亚洲综合成人网 | 久久99精品久久久久久青青日本 | 综合久色| 精品乱人伦一区二区 | 亚洲国产成人久久综合野外 | 国产综合成人久久大片91 | 欧美人猛交日本人xxx | 九九热这里都是精品 | 国产国产精品人在线视 | 婷婷视频在线观看 | 国产在线精品福利91香蕉 | 国产福利视频在线观看 | 14一15sexvideo日本 | 久久国产高清字幕中文 | 国产精品乱码高清在线观看 | 成人xxx免费视频播放 | 日韩一区二区三区不卡 | 欧美精品香蕉在线观看网 | 天天射天天干天天插 | 五月天婷婷在线免费观看 | 亚洲美女在线观看播放 | 久久是精品 | 国产中文在线 | 福利视频91| 看免费的毛片 | 夜色视频网站 | 91在线视频免费播放 |