亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2019年08月20日 10:19:06   作者:一抹天空  
這篇文章主要介紹了python函數(shù)的作用域及關(guān)鍵字詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

函數(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ì)上層來(lái)說(shuō)也是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í)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python+OpenCV內(nèi)置方法實(shí)現(xiàn)行人檢測(cè)

    Python+OpenCV內(nèi)置方法實(shí)現(xiàn)行人檢測(cè)

    OpenCV附帶一個(gè)預(yù)訓(xùn)練的HOG+線性SVM模型,可用于在圖像和視頻流中執(zhí)行行人檢測(cè)。本文我們將使用Opencv自帶的模型實(shí)現(xiàn)對(duì)視頻流中的行人檢測(cè)。感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2021-12-12
  • PyQt5+Caffe+Opencv搭建人臉識(shí)別登錄界面

    PyQt5+Caffe+Opencv搭建人臉識(shí)別登錄界面

    這篇文章主要為大家詳細(xì)介紹了PyQt5+Caffe+Opencv搭建人臉識(shí)別登錄界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • python 使用遞歸的方式實(shí)現(xiàn)語(yǔ)義圖片分割功能

    python 使用遞歸的方式實(shí)現(xiàn)語(yǔ)義圖片分割功能

    這篇文章主要介紹了python 使用遞歸的方式實(shí)現(xiàn)語(yǔ)義圖片分割,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • python導(dǎo)出requirements.txt的幾種方法以及環(huán)境配置詳細(xì)流程

    python導(dǎo)出requirements.txt的幾種方法以及環(huán)境配置詳細(xì)流程

    這篇文章主要給大家介紹了關(guān)于python導(dǎo)出requirements.txt的幾種方法以及環(huán)境配置詳細(xì)流程,requirements.txt 文件是一個(gè)文本文件,用于列出你的Python項(xiàng)目所依賴的軟件包及其版本,需要的朋友可以參考下
    2023-11-11
  • python如何實(shí)現(xiàn)遠(yuǎn)程控制電腦(結(jié)合微信)

    python如何實(shí)現(xiàn)遠(yuǎn)程控制電腦(結(jié)合微信)

    這篇文章主要介紹了python如何實(shí)現(xiàn)遠(yuǎn)程控制電腦,利用python設(shè)計(jì)了一個(gè)程序來(lái)實(shí)現(xiàn)自由管控,感興趣的小伙伴們可以參考一下
    2015-12-12
  • python實(shí)現(xiàn)固定尺寸圖像拼接

    python實(shí)現(xiàn)固定尺寸圖像拼接

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)固定尺寸圖像拼接,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • python使用scrapy發(fā)送post請(qǐng)求的坑

    python使用scrapy發(fā)送post請(qǐng)求的坑

    這篇文章主要介紹了使用scrapy發(fā)送post請(qǐng)求的坑,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • Python操作Excel插入刪除行的方法

    Python操作Excel插入刪除行的方法

    今天小編就為大家分享一篇Python操作Excel插入刪除行的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Python base64編碼解碼實(shí)例

    Python base64編碼解碼實(shí)例

    這篇文章主要介紹了Python base64編碼解碼實(shí)例,本文直接給出實(shí)例代碼,使用也很簡(jiǎn)單,需要的朋友可以參考下
    2015-06-06
  • python實(shí)現(xiàn)最小二乘法線性擬合

    python實(shí)現(xiàn)最小二乘法線性擬合

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)最小二乘法線性擬合,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07

最新評(píng)論