變量名網站(帶你一分鐘搞懂命名空間)

|名稱空間名稱空間又名 name space顧名思義就是存放名字的地方,那名稱空間又存什麼名字呢?舉例說明,若變量a=100,100存放於內存中,那變量的名字a存放在哪裡呢?名稱空間正是存放變量名字a與100綁定關系的地方。python裡面有很多名字空間,每個地方都有自己的名字空間互不幹擾,不同空間中的兩個相同名字的變量之間沒有任何聯系。|名稱空間有4種locals函數內部的名字空間,一般包括函數的局部變量以及形式參數enclosing function在嵌套函數中外部函數的名字空間,若f2函數嵌套在f1函數中,對f2來說,f1的名字空間就是enclosingglobals當前的模塊空間,模塊就是一些py文件,也就是說 globals是全局變量builtins內置模塊空間,也就是內置變量或者內置函數的名字空間, print(dir(__builtins__))可查看包含的值不同變量的作用域不同就是由這個變量所在的名稱空間決定的作用域即范圍全局范圍:全局存活,全局有效局部范圍:臨時存活,局部有效查看作用域方法gobals 看全局localsl 看局部查詢順序LEGB即:locals–> enclosing function–>globals–>builtins案例說明level1 = "global"
age = 11
def func():
level2 = "local"
age = 22
print("func:", locals(), age)
def outer():
level3 = "outer"
age = 33
print("outer:", locals(), age)
def inner():
level4 = "inner"
age = 44
print("inner:", locals(), age)
inner()
outer()

func()
print(age)當inner函數中沒有定義age當outer函數中沒有定義age隻有全局變量有定義age當全局也沒有定義時,此時替換變量為Python內置的值一分鐘學會LEGB,是不是做到瞭,哈哈哈。

本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://www.175ku.com/41025.html