日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python 中的命名空間,你真的了解嗎?

瀏覽:27日期:2022-07-13 14:45:10

寫在之前

命名空間,又名 namesapce,是在很多的編程語言中都會出現的術語,估計很多人都知道這個詞,但是讓你真的來說這是個什么,估計就歇菜了,所以我覺得 “命名空間” 有必要了解一下。

全局變量 & 局部變量

全局變量和局部變量是我們理解命名空間的開始,我們先來看一段代碼:

x = 2def func(): x = 3 print(’func x ---> ’,x)func()print(’out of func x ---> ’,x)

這段代碼輸出的結果如下:

func x ---> 3out of func x ---> 2

從上述的結果中可以看出,運行 func(),輸出的是 func() 里面的變量 x 所引用的對象 3,之后執行的是代碼中的最后一行。這里要區分清楚,前一個 x 輸出的是函數內部的變量 x,后一個 x 輸出的是函數外的變量 x,兩個變量互相不影響,在各自的作用域中起作用。

那個只在函數內起作用的變量就叫 “局部變量”,有了 “局部” 就有相應的 “全部”,但是后者聽起來有歧義,所以就叫了 “全局”。

x = 2def func(): global x = 3 #注意此處 print(’func x ---> ’,x)func()print(’out of func x ---> ’,x)

這段代碼中比上段代碼多加了一個 global x,這句話的意思是在聲明 x 是全局變量,通俗點說就是這個 x 和 函數外的 x 是同一個了,所以結果就成了下面這樣:

func x ---> 3out of func x ---> 3

這樣乍一看好像全局變量好強,可以管著函數內外,但是我們還是要注意,全局變量還是謹慎使用的好,因為畢竟內外有別,不要帶來混亂。

作用域

作用域,用比較直白的方式來說,就是程序中變量與對象存在關聯的那段程序,比如我在上面說的, x = 2 和 x = 3 是在兩個不同的作用域中。

通常的,作用域是被分為靜態作用域和動態作用域,雖然我們說 Python 是動態語言,但是它的作用域屬于靜態作用域,即 Python 中的變量的作用域是由該變量所在程序中的位置所決定的。

在 Python 中作用域被劃分成四個層級,分別是:local(局部作用域),enclosing(嵌套作用域),global(全局作用域)和 built - in(內建作用域)。對于一個變量,Python 也是按照之前四個層級依次在不用的作用域中查找,我們在上一段代碼中,對于變量 x,首先搜索的是函數體內的局部作用域,然后是函數體外的全局作用域,至于這段話具體怎么來理解,請看下面的例子:

def out_func(): x = 2 def in_func(): x = 3 print(’in_func x ---> ’,x) in_func() print(’out_func x ---> ’,x)x = 4out_func()print(’x == ’,x)

仔細觀察一下上面的代碼和運行的結果,你就會發現變量在不同的范圍內進行搜索的規律,是不是感覺這些都是以前被你忽略的呢?

命名空間

《維基百科》中說 “命名空間是對作用域的一種特殊的抽象”,在這里我用一個比方來具體說明一下:

比如張三在公司 A,他的工號是 111,李四在公司 B,他的工號也是 111,因為兩個人在不同的公司,他們倆的工號可以相同但是不會引起混亂,這里的公司就表示一個獨立的命名空間,如果兩個人在一個公司的話,他們的工號就不能相同,否則光看工號也不知道到底是誰。

其實上面舉的這個例子的特點就是我們使用命名空間的理由,在大型的計算機程序中,往往會出現成百上千的標識符,命名空間提供隱藏區域標識符的機制。通過將邏輯上相關的標識符構成響應的命名空間,可以使整個系統更加的模塊化。

我在開頭引用的《維基百科》的那句話說 “命名空間是對作用域的一種特殊的抽象”,它其實包含了處于該作用域內的標識符,且它本身也用一個標識符來表示。在 Python 中,命名空間本身的標識符也屬于更外層的一個命名空間,所以命名空間也是可以嵌套的,它們共同生活在 “全局命名空間” 下。

簡言之,不同的命名空間可以同時存在,但是彼此獨立,互不干擾。當然了,命名空間因為其對象的不同也有所區別,可以分為以下幾種:

1.本地命名空間:模塊中有函數或者類的時候,每個函數或者類所定義的命名空間即是本地命名空間,當函數返回結果或者拋出異常的時候,本地命名空間也就結束了。

2.全局命名空間:每個模塊創建了自己所擁有的全局命名空間,不同模塊的全局命名空間彼此獨立,不同模塊中相同名稱的命名空間也會因為模塊的不同而不相互干擾。

3.內置命名空間:當 Python 運行起來的時候,它們就存在了,內置函數的命名空間都屬于內置命名空間,所以我們可以在任何程序中直接運行它們。

程序查詢命名空間的時候也有一套順序,依次按照本地命名空間 ,全局命名空間,內置命名空間。

def fun(like): name = ’rocky’ print(locals())fun(’python’)

訪問本地命名空間使用 locals 完成,我們來看一下結果:

{’name’: ’rocky’, ’like’: ’python’}

從上面的結果中可以看出,命名空間中的數據存儲的結構和字典是一樣的。可能你已經猜到了,當我們要訪問全局命名空間的時候,可以使用 globals。

關于命名空間還有一個生命周期的問題,就是一個命名空間什么時候出現,什么時候消失,這個很好理解,就是哪部分被讀入內存,哪部分的命名空間就存在了,比如我們在上面說的,Python 啟動,內置命名空間就建立。

寫在之后

至此,我的零基礎學習 Python 計劃里關于函數的部分就結束了,這一部分寫的時間超出了我原本的計劃,但是在寫的過程中覺得有些知識點還是說說的好,從下周開始,就要開始 “類” 這一部分的學習啦,希望我們還可以繼續這么走下去,我堅持寫,你也堅持學。

還有堅持。。點個贊。。

以上就是python 中的命名空間,你真的了解嗎?的詳細內容,更多關于python 命名空間的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲毛片视频| 久久av免费看| 精品三级在线观看视频| 日本一区福利在线| 在线一区二区三区视频| 国产综合视频| 黄色在线网站噜噜噜| 国产一区二区三区久久| 国产精品videossex久久发布 | 水蜜桃久久夜色精品一区的特点| 日韩二区三区在线观看| 成人亚洲精品| 高潮久久久久久久久久久久久久| 欧美亚洲综合视频| 日本a级不卡| 国产亚洲欧美日韩精品一区二区三区| 国产精品密蕾丝视频下载| 精品亚洲二区| 福利一区和二区| 亚洲一区欧美激情| 青青草精品视频| 日本一区福利在线| 日韩精品欧美大片| 国产精品一区2区3区| 蜜臀a∨国产成人精品| 亚洲精品高潮| 欧美日韩1区| 欧美亚洲专区| 国产96在线亚洲| 国产精品99一区二区三区| 亚洲理论在线| 国产欧美日韩精品一区二区三区| 日韩av网站免费在线| 每日更新成人在线视频| 在线日韩成人| 日韩精品成人在线观看| 精品午夜av| 国产videos久久| 福利一区在线| 亚洲视频二区| 爽爽淫人综合网网站| 一本一道久久a久久精品蜜桃| 国产第一亚洲| 日本高清不卡一区二区三区视频| 婷婷亚洲五月| 丝袜亚洲另类欧美| 精品成人18| 日韩精品视频一区二区三区| 日韩在线看片| 欧洲av不卡| 麻豆国产91在线播放| 亚洲女同中文字幕| 久久人人99| 国产精品白丝一区二区三区| 视频在线观看一区二区三区| 亚洲欧美日韩精品一区二区| 2023国产精品久久久精品双| 美女毛片一区二区三区四区| 国产精品毛片| 香蕉久久精品| 中文无码日韩欧| 国产高清日韩| 精品一区免费| 亚洲涩涩av| 欧美视频二区| 99视频一区| 久久精品99国产精品日本| 国产成人精品一区二区三区视频| 久久国产日韩| 欧美日一区二区三区在线观看国产免| 精品一区二区三区中文字幕视频 | av免费不卡国产观看| 裤袜国产欧美精品一区| 久久亚洲风情| 国产九一精品| 久草免费在线视频| 精品一区二区三区中文字幕视频 | 国产精品超碰| 国产日本精品| 高清一区二区| 午夜亚洲一区| 免费不卡在线视频| 黑丝一区二区| 男女精品网站| 国产精品毛片在线| 石原莉奈一区二区三区在线观看| 欧美另类中文字幕 | 欧美国产另类| 亚洲一区国产一区| 日韩精品午夜视频| 亚洲无线一线二线三线区别av| 日韩中文字幕无砖| 九九色在线视频| 国产精品欧美大片| 国产亚洲精品v| 国产精品久久久久久久久久10秀| 日本视频一区二区| 欧美+日本+国产+在线a∨观看| 国产精品欧美在线观看| 在线精品福利| 日韩精品诱惑一区?区三区| 蜜桃久久久久久久| 狠狠久久婷婷| 欧美激情另类| 久久精品日韩欧美| 美女国产一区二区三区| 午夜日韩在线| 国产精品99精品一区二区三区∴ | 久久国产电影| 一区二区亚洲视频| 久久精品国产成人一区二区三区| 日本蜜桃在线观看视频| 欧美黑人巨大videos精品| 蜜臀a∨国产成人精品| 国产精品99一区二区三区| 国产精品一区二区三区av麻| 免费精品国产的网站免费观看| 日韩中出av| 精品无人区麻豆乱码久久久 | 天堂网在线观看国产精品| 91视频一区| 国产三级一区| 亚洲18在线| 蜜臀av一区二区在线免费观看| 久久精选视频| 国产一区二区三区探花| 精品国产欧美| 国产九九精品| 日韩成人精品一区二区三区 | 日韩中文字幕一区二区三区| 免费av一区| 91精品一区二区三区综合| 日韩精品欧美| 国产一区日韩| 麻豆国产欧美一区二区三区 | 亚洲在线一区| 国产精品美女午夜爽爽| 国产欧美日韩一级| 亲子伦视频一区二区三区| 国产精品15p| 亚洲不卡视频| 在线亚洲一区| 国产精品毛片在线看| 日本成人在线不卡视频| 日韩精品五月天| 日韩高清一区在线| 国产人成精品一区二区三| 国产精品www.| 国产精品蜜芽在线观看| 成人看片网站| 中文国产一区| 久久国产精品久久久久久电车| 国产精品久久观看| 都市激情国产精品| 日本免费一区二区三区四区| 高清一区二区| 日韩中文在线电影| 91九色精品| 性色一区二区| 亚洲精品在线国产| 美女视频黄久久| 国产一区二区三区视频在线| 国产高清亚洲| 成人免费网站www网站高清| 欧美国产亚洲精品| 精品国产亚洲一区二区三区在线| 久久男人av资源站| 欧美日韩精品免费观看视欧美高清免费大片| 精品久久中文| 99精品视频在线| 999国产精品永久免费视频app| 91精品久久久久久久久久不卡| 久久wwww| 日韩精品一二区| 国产成人精品一区二区免费看京| 精品在线网站观看| 国产精品一页| 久久99久久人婷婷精品综合| 国产精品igao视频网网址不卡日韩| 欧美日韩尤物久久| 精品五月天堂| 日韩高清不卡一区二区| 国产精品美女久久久| 久久午夜影视| 欧美日本久久| 美女av一区| 久久久久国产精品一区三寸| 好吊日精品视频| 亚洲欧美日韩国产综合精品二区| 亚洲欧美日韩国产一区| 婷婷亚洲成人| 不卡在线一区二区| 欧美日韩精品一区二区三区视频| 色综合五月天| 亚洲丝袜啪啪| 三级在线看中文字幕完整版| 亚洲日产国产精品| 久久精品国内一区二区三区水蜜桃| 欧美搞黄网站| 国产极品嫩模在线观看91精品|