1. 程式人生 > >命名空間和作用域鏈

命名空間和作用域鏈

變量 解釋 局部作用域 內存 不可 style 作用 自己 報錯

一。命名空間

1.內置命名空間

就是python解釋器一啟動就可以使用的名字,存儲在內置命名空間中

內置的名字在啟動解釋器的時候被加載進內存裏

2.全局命名空間

是在程序從上到下被執行的過程中一次加載進內存的

放置了我們設置的所有變量名和函數名

3.局部命名空間

就是函數內部定義的名字

當調用函數的時候 ,才會產生這個名稱空間,隨著函數執行的結束,這個命名空間又消失了

4.#

1.在正常情況下,直接使用內置的名字

2.當我們在全局定義了和內置名字空間中同名的名字的時候,會使用全局的名字

3.當我自己有的時候,我就不找我上級要了

4.如果自己沒有,就找上一級要,上一級如果沒有,再找上一級,如果內置的名字空間都沒有,就報錯

5.多個函數應該擁有多個獨立的局部名字空間,不相互分享

二。作用域

1.全局作用域

作用在全局,內置湖人全局名字空間中的名字都屬於全局作用域----------globals()

2.局部作用域

作用在局部,函數(局部名字空間中的名字屬於局部作用域)----------locals()

3.#

1.對於不可變數據類型,在局部可以查看全局作用域中的變量,但是不能直接修改

2.如果想要修改,需要在程序的一開始添加global聲明

3.如果在一個局部(函數)內聲明了一個global變量,那麽這個變量在局部的所有操作將對全局的變量有效

4.globals

永遠打印全局的名字

5.locals

local 本地的

所以當local寫在全局作用域時打印全局的名字

當;local寫在局部作用域時打印局部的名字

命名空間和作用域鏈