命名空間一共分為三種:
全域性命名空間
區域性命名空間
內建命名空間
python**執行的時候遇到函式是怎麼做的
從python直譯器開始執行之後,就在記憶體中開闢了乙個空間,每當遇到乙個變數的時候,就把變數名和值之間的對應關係記錄下來。但是當遇到函式定義的時候直譯器只是象徵性的將函式名讀入記憶體,表示知道這個函式的存在了,至於函式內部的變數和邏輯直譯器根本不關心
---------**在執行伊始,建立的儲存「變數名與值的關係」的空間叫做全域性命名空間
等執行到函式呼叫的時候,python直譯器會再開闢一塊記憶體來儲存這個函式裡的內容,這個時候,才關注函式裡面有哪些變數,而函式中的變數會儲存在新開闢出來的記憶體中。函式中的變數只能在函式的內部使用,並且會隨著函式執行完畢,這塊記憶體中的所有內容也會被清空
--------在函式的執行中開闢的臨時的空間叫做區域性命名空間
內建命名空間中存放了python直譯器為我們提供的名字:input,print,str,list,tuple...它們都是我們熟悉的,拿過來就可以用的方法
三種命名空間之間的載入與取值順序:
載入順序:
內建命名空間(程式執行前載入)->全域性命名空間(程式執行中:從上到下載入)->區域性命名空間(程式執行中:呼叫時才載入)
取值:
在區域性呼叫:區域性命名空間->全域性命名空間->內建命名空間
definput():
print("
我自己定義的input")
deffunc():
input()
func()
x =10view codedefmysum():
x = 2
return
xl =mysum()
(l)#
2x =10
defmysum():
#x = 2
return
xl =mysum()
(l)#
10
x = 1deff(x):
(x)f(10)
print(x)
Python函式高階之函式命名空間
命名空間指的是儲存程式中的變數名和值的地方。命名空間的本質是乙個字典,用來記錄變數名稱和值。字典的key是變數的名稱,字典的value對於的是變數的值。例如 命名空間一共分為三種 區域性命名空間 全域性命名空間 內建命名空間 區域性空間 每個函式都有自己的命名空間,叫做區域性空間,它記錄了函式的變數...
2020 12 29隨堂筆記函式,命名空間與作用域
1 函式物件 在python中,函式是第一類物件 第一等公民 本質 函式可以當變數用,故引發下列操作 1 可以被賦值 例 def func print from func f func print f f 2 可以當引數傳給另外乙個函式 def foo x x foo func 3 可以當做函式的返...
python之命名空間
一 命名空間namespaces 存放名字的空間,是對棧區的劃分,有了名稱之後,就可以在棧區中存放相同的名字,詳細的,命名空間分為三種。1.1 內建命名空間 存放的名字 存放的是python直譯器內內建的名字 存活週期 python直譯器啟動則產生。python直譯器關閉則銷毀。print 1.2 ...