中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中名稱空間與作用域的示例分析

發布時間:2022-03-04 15:01:01 來源:億速云 閱讀:149 作者:小新 欄目:開發技術

小編給大家分享一下python中名稱空間與作用域的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

函數內部的函數只能在函數內部調用,不能在函數外部調用,通過接下來的學習你將會知道為什么會出現這種情況。

python中名稱空間與作用域的示例分析

一、名稱空間

名稱空間(name spaces):在內存管理那一章節時,我們曾說到變量的創建其實就是在內存中開辟了一個新的空間。但是我們一直在回避變量名的存儲,其實在內存中有一塊內存空間存儲變量名與變量間的綁定關系的空間,而這個空間稱為名稱空間,真正存名字的地方是棧區,名稱空間只是把棧區分成為幾個部分,有了名稱空間我們就可以在棧區存放相同的名字。

python中名稱空間與作用域的示例分析

1.1 內置名稱空間

內置名稱空間:存放Pyhton解釋器自帶的名字,如intfloatlen

生命周期:在解釋器啟動時生效,在解釋器關閉時失效

1.2 全局名稱空間

全局名稱空間:除了內置和局部的名字之外,其余都存放在全局名稱空間,如下面代碼中的xfunclz

生命周期:在文件執行時生效,在文件執行結束后失效

python中名稱空間與作用域的示例分析

1.3 局部名稱空間

局部名稱空間:用于存放函數調用期間函數體產生的名字,如下面代碼的f2

生命周期:在文件執行時函數調用期間時生效,在函數執行結束后失效

注意:即使是對同一個函數,即便它是空函數,如果我們對它進行多次調用的話,調用一次產生一個局部名稱空間,

python中名稱空間與作用域的示例分析

python中名稱空間與作用域的示例分析

1.4 加載順序

由于.py文件是由Python解釋器打開的,因此一定是在Python解釋器中的內置名稱空間加載結束后,文件才開始打開,這個時候才會產生全局名稱空間,但文件內有某一個函數被調用的時候,才會開始產生局部名稱空間,因此名稱空間的加載順序為:內置–》全局–》局部。

1.5 查找順序

由于名稱空間是用來存放變量名與值之間的綁定關系的,所以但凡要查找名字,一定是從三者之一找到,查找順序為:
從當前的所在位置開始查找,如果當前所在的位置為局部名稱空間,則查找順序為:局部–》全局–》內置。

python中名稱空間與作用域的示例分析

二、作用域

域指的是區域,作用域即作用的區域。

2.1 全局作用域

全局作用域:全局有效,被所有的函數共享,包含內置名稱空間和全局名稱空間。

python中名稱空間與作用域的示例分析

2.2 局部作用域

局部作用域:局部有小,臨時存儲,只包含局部名稱空間。

python中名稱空間與作用域的示例分析

2.3 注意點

需要注意的是:作用域關系在函數定義階段就固定死了,與函數的調用無關。

python中名稱空間與作用域的示例分析

2.4 函數對象+作用域應用

python中名稱空間與作用域的示例分析

三、補充知識點

3.1 global關鍵字

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

python中名稱空間與作用域的示例分析

3.2 nonlocal關鍵字

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

python中名稱空間與作用域的示例分析

3.3 注意點

  • 在局部想要修改全局的可變類型,不需要任何聲明,可以直接修改。

  • 在局部如果想要修改全局的不可變類型,需要借助global聲明,聲明為全局的變量,即可直接修改。

以上是“python中名稱空間與作用域的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

元阳县| 富源县| 称多县| 安仁县| 普兰县| 文水县| 哈密市| 花莲县| 汶川县| 潮州市| 芜湖县| 班玛县| 屯昌县| 古蔺县| 涿州市| 余庆县| 沙雅县| 肥东县| 巴中市| 青龙| 漠河县| 华容县| 临夏市| 绍兴市| 金堂县| 忻城县| 荔浦县| 万宁市| 封丘县| 菏泽市| 嵊泗县| 和顺县| 左权县| 怀安县| 姚安县| 自贡市| 鸡西市| 中西区| 益阳市| 海城市| 金塔县|