" />

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

python 名稱空間與作用域詳情

 更新時(shí)間:2022年01月24日 10:45:09   作者:Python 學(xué)習(xí)者  
這篇文章主要介紹了python 名稱空間與作用域詳情,函數(shù)內(nèi)部的函數(shù)只能在函數(shù)內(nèi)部調(diào)用,不能在函數(shù)外部調(diào)用,通過(guò)接下來(lái)的學(xué)習(xí)你將會(huì)知道為什么會(huì)出現(xiàn)這種情況。

函數(shù)內(nèi)部的函數(shù)只能在函數(shù)內(nèi)部調(diào)用,不能在函數(shù)外部調(diào)用,通過(guò)接下來(lái)的學(xué)習(xí)你將會(huì)知道為什么會(huì)出現(xiàn)這種情況。

一、名稱空間

名稱空間(name spaces):在內(nèi)存管理那一章節(jié)時(shí),我們?cè)f(shuō)到變量的創(chuàng)建其實(shí)就是在內(nèi)存中開(kāi)辟了一個(gè)新的空間。但是我們一直在回避變量名的存儲(chǔ),其實(shí)在內(nèi)存中有一塊內(nèi)存空間存儲(chǔ)變量名與變量間的綁定關(guān)系的空間,而這個(gè)空間稱為名稱空間,真正存名字的地方是棧區(qū),名稱空間只是把棧區(qū)分成為幾個(gè)部分,有了名稱空間我們就可以在棧區(qū)存放相同的名字。

1.1 內(nèi)置名稱空間

內(nèi)置名稱空間:存放Pyhton解釋器自帶的名字,如int、float、len

生命周期:在解釋器啟動(dòng)時(shí)生效,在解釋器關(guān)閉時(shí)失效

1.2 全局名稱空間

全局名稱空間:除了內(nèi)置和局部的名字之外,其余都存放在全局名稱空間,如下面代碼中的x、func、l、z

生命周期:在文件執(zhí)行時(shí)生效,在文件執(zhí)行結(jié)束后失效

1.3 局部名稱空間

局部名稱空間:用于存放函數(shù)調(diào)用期間函數(shù)體產(chǎn)生的名字,如下面代碼的f2

生命周期:在文件執(zhí)行時(shí)函數(shù)調(diào)用期間時(shí)生效,在函數(shù)執(zhí)行結(jié)束后失效

注意:即使是對(duì)同一個(gè)函數(shù),即便它是空函數(shù),如果我們對(duì)它進(jìn)行多次調(diào)用的話,調(diào)用一次產(chǎn)生一個(gè)局部名稱空間,

1.4 加載順序

由于.py文件是由Python解釋器打開(kāi)的,因此一定是在Python解釋器中的內(nèi)置名稱空間加載結(jié)束后,文件才開(kāi)始打開(kāi),這個(gè)時(shí)候才會(huì)產(chǎn)生全局名稱空間,但文件內(nèi)有某一個(gè)函數(shù)被調(diào)用的時(shí)候,才會(huì)開(kāi)始產(chǎn)生局部名稱空間,因此名稱空間的加載順序?yàn)椋簝?nèi)置–》全局–》局部。

1.5 查找順序

由于名稱空間是用來(lái)存放變量名與值之間的綁定關(guān)系的,所以但凡要查找名字,一定是從三者之一找到,查找順序?yàn)椋?br />從當(dāng)前的所在位置開(kāi)始查找,如果當(dāng)前所在的位置為局部名稱空間,則查找順序?yàn)椋壕植?ndash;》全局–》內(nèi)置。

二、作用域

域指的是區(qū)域,作用域即作用的區(qū)域。

2.1 全局作用域

全局作用域:全局有效,被所有的函數(shù)共享,包含內(nèi)置名稱空間和全局名稱空間。

2.2 局部作用域

局部作用域:局部有小,臨時(shí)存儲(chǔ),只包含局部名稱空間。

2.3 注意點(diǎn)

需要注意的是:作用域關(guān)系在函數(shù)定義階段就固定死了,與函數(shù)的調(diào)用無(wú)關(guān)。

2.4 函數(shù)對(duì)象+作用域應(yīng)用

三、補(bǔ)充知識(shí)點(diǎn)

3.1 global關(guān)鍵字

修改全局作用域中的變量。

3.2 nonlocal關(guān)鍵字

修改局部作用域中的變量。

3.3 注意點(diǎn)

  • 在局部想要修改全局的可變類(lèi)型,不需要任何聲明,可以直接修改。
  • 在局部如果想要修改全局的不可變類(lèi)型,需要借助global聲明,聲明為全局的變量,即可直接修改。

到此這篇關(guān)于python 名稱空間與作用域詳情的文章就介紹到這了,更多相關(guān)python 名稱空間與作用域內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 完美解決pyinstaller打包報(bào)錯(cuò)找不到依賴pypiwin32或pywin32-ctypes的錯(cuò)誤

    完美解決pyinstaller打包報(bào)錯(cuò)找不到依賴pypiwin32或pywin32-ctypes的錯(cuò)誤

    這篇文章主要介紹了完美解決pyinstaller打包報(bào)錯(cuò)找不到依賴pypiwin32或pywin32-ctypes的錯(cuò)誤,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 基于pandas數(shù)據(jù)樣本行列選取的方法

    基于pandas數(shù)據(jù)樣本行列選取的方法

    下面小編就為大家分享一篇基于pandas數(shù)據(jù)樣本行列選取的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • GraphQL在Django中的使用教程

    GraphQL在Django中的使用教程

    這篇文章主要介紹了GraphQL在Django中的使用教程,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • Python中轉(zhuǎn)換角度為弧度的radians()方法

    Python中轉(zhuǎn)換角度為弧度的radians()方法

    這篇文章主要介紹了Python中轉(zhuǎn)換角度為弧度的radians()方法,是Python入門(mén)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • Python如何調(diào)用外部系統(tǒng)命令

    Python如何調(diào)用外部系統(tǒng)命令

    這篇文章主要介紹了Python如何調(diào)用外部系統(tǒng)命令,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • mac使用python識(shí)別圖形驗(yàn)證碼功能

    mac使用python識(shí)別圖形驗(yàn)證碼功能

    這篇文章主要介紹了mac使用python識(shí)別圖形驗(yàn)證碼功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Python Metaclass原理與實(shí)現(xiàn)過(guò)程詳細(xì)講解

    Python Metaclass原理與實(shí)現(xiàn)過(guò)程詳細(xì)講解

    MetaClass元類(lèi),本質(zhì)也是一個(gè)類(lèi),但和普通類(lèi)的用法不同,它可以對(duì)類(lèi)內(nèi)部的定義(包括類(lèi)屬性和類(lèi)方法)進(jìn)行動(dòng)態(tài)的修改??梢赃@么說(shuō),使用元類(lèi)的主要目的就是為了實(shí)現(xiàn)在創(chuàng)建類(lèi)時(shí),能夠動(dòng)態(tài)地改變類(lèi)中定義的屬性或者方法
    2022-11-11
  • pytorch如何實(shí)現(xiàn)邏輯回歸

    pytorch如何實(shí)現(xiàn)邏輯回歸

    這篇文章主要介紹了pytorch如何實(shí)現(xiàn)邏輯回歸問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 使用scrapy實(shí)現(xiàn)爬網(wǎng)站例子和實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲(chóng)(蜘蛛)的步驟

    使用scrapy實(shí)現(xiàn)爬網(wǎng)站例子和實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲(chóng)(蜘蛛)的步驟

    本文分二個(gè)示例,第一個(gè)是個(gè)簡(jiǎn)單的爬網(wǎng)站的小例子,第二個(gè)例子實(shí)現(xiàn)目是從一個(gè)網(wǎng)站的列表頁(yè)抓取文章列表,然后存入數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)包括文章標(biāo)題、鏈接、時(shí)間,大家參考使用吧
    2014-01-01
  • Django-rest-framework中過(guò)濾器的定制實(shí)例

    Django-rest-framework中過(guò)濾器的定制實(shí)例

    這篇文章主要介紹了Django-rest-framework中過(guò)濾器的定制實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04

最新評(píng)論