外層作用域>當(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)論
主站蜘蛛池模板: 国产一区二区精品久久91 | xoxo日本| 欧美刺激午夜性久久久久久久 | 欧美午夜伦y4480私人影院 | 久久精品视频免费观看 | 毛片一区 | 亚洲精品a| 国产线路一 | 国产精品久久久久久久久久久久 | 天天干天天色综合网 | 国产日韩精品一区二区在线观看 | 日韩欧美精品综合一区二区三区 | 真实国产精品视频国产网 | 91伊人影院 | 欧美成人免费观看国产 | 91精品综合久久久久3d动漫 | 久久久久国产一级毛片高清板 | 欧美aaaaaaaa | 婷婷亚洲五月 | 日日操美女 | 色综合久久久久综合99 | 日韩大片 | 亚洲国产精品自产拍在线播放 | 亚洲免费视频播放 | 亚洲精品在线视频观看 | 亚洲精品美女久久777777 | 国产精品国产三级国产无毒 | 欧美精品观看 | 抱着cao才爽免费观看 | 免费鲁丝片一级在线观看 | 亚洲欧美日韩一区超高清 | 一区二区三区在线免费观看视频 | 亚洲精品影视 | 在线观看国产视频 | 免费99视频 | 国产精品久久久久久五月尺 | 色黄网站成年女人色毛片 | 成人香蕉网 | 97精品久久久久中文字幕 | 一级特黄高清完整大片 | 亚洲精品视频二区 |