欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

函數(shù)的作用域

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

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

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

作用域產(chǎn)生

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

global關(guān)鍵字

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

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

nonlocal關(guān)鍵字

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

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

作用域小結(jié)

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

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

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

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

    PyQt5+Caffe+Opencv搭建人臉識別登錄界面

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

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

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

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

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

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

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

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

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

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

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

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

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

    Python base64編碼解碼實例

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

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

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

最新評論