外層作用域>當(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)論
主站蜘蛛池模板: 国产一区二区三区久久精品 | 国产免费福利 | 欧美在线xxx | 欧美成人自拍 | 久久这里只有精品免费看青草 | 国产亚洲精品久久久久91网站 | www.香蕉网| 久久亚洲精中文字幕冲田杏梨 | 精品福利 | 男人的网站在线观看 | 中文字幕久热精品视频免费 | 久久久国产精品免费看 | 亚洲欧美日韩精品中文乱码 | 91精品91久久久 | 免费一级特黄3大片视频 | 欧美大胆一级视频 | 久久久国产亚洲精品 | 国产午夜爽爽窝窝在线观看 | 亚洲国产婷婷综合在线精品 | 91精品免费在线观看 | 国产日韩精品欧美在线ccc | 老司机免费福利影院 | 日本一线一区二区三区免费视频 | 色综合久久综合欧美综合图片 | 欧美中文字幕在线看 | 狠狠狠狠狠狠干 | 欧美视频一区二区三区在线观看 | 久久精品在 | 年级的后妈妈2中文翻译 | 国产大片在线播放 | 国产成人综合精品一区 | 亚洲国产男人本色在线观看的a站 | 亚洲久草| 国产高清不卡 | 亚洲精品在线播放视频 | 欧美日韩精品一区三区 | 神马午夜剧场 | 丁香婷婷影音先锋5566 | 亚洲国产一区二区三区精品 | 看全色黄大色大片免费视频 | 成人在免费观看视频国产 |