外層作用域>當(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)論
主站蜘蛛池模板: 大学生不戴套毛片视频 | 精品国产96亚洲一区二区三区 | 99久久国产免费福利 | 久久中文字幕综合不卡一二区 | 妇女网站爱嘿嘿视频免费观看 | 午夜精品久久久久久久99热浪潮 | 天天躁狠狠躁夜夜躁 | 一级在线视频 | 国产精品400部自产在线观看 | 亚洲国产天堂久久综合 | 久九精品 | 久久精品伊人 | 日本大片久久久高清免费看 | 国产精品伦理久久久久久 | 国产福利视频网站 | 日韩一区二区三区视频在线观看 | 特级全黄一级毛片免费 | 国产精片 | 四虎国产精品永久地址99 | 午夜a一级毛片一.成 | 国产精品久久久尹人香蕉 | 久久精品国产精品亚洲毛片 | 国产一级特黄老妇女大片免费 | 久久99精品久久久久久牛牛影视 | 婷婷久久综合 | 久久久久草 | 天天干天天操天天射 | 四虎精品国产一区二区三区 | 久久密 | 第一福利在线 | 亚洲高清在线观看 | 五月婷婷在线观看视频 | 国内精品51视频在线观看 | 性生生活三级视频观看 | 亚洲国产精品自产拍在线播放 | 97高清国语自产拍 | 成人亚洲天堂 | 9191精品国产免费不久久 | 久久青草91免费观看 | 国产精品a人片在线观看 | 久久亚洲国产中v天仙www |