python命名空間(五分鐘讀懂)

2021-10-25 09:09:15 字數 2389 閱讀 3677

1.命名空間指的是變數儲存的位置,每乙個變數都需要儲存到指定的命名空間當中

2.每乙個作用域都會有乙個它對應的命名空間

3.全域性命名空間,用來儲存全域性變數。函式命名空間用來儲存函式中的變數

4.命名空間實際上就是乙個字典,是乙個專門用來儲存變數的字典

1.在全域性作用域中呼叫locals()則獲取-全域性命名空間,

2.在函式作用域中呼叫locals()則獲取-函式命名空間

3.它返回的是乙個字典

沒有定義函式中

a =[1

,2,3

]b =(4

,5,6

)c =

dalao =

locals()

# 當前命名空間

print

(locals()

)# 列印結果為, '__builtins__': , '__file__': 'c:\\users\\administrator\\102901.py', '__cached__': none, 'a': [1, 2, 3], 'b': (4, 5, 6), 'c': , 'dalao': }

print

(dalao)

# 列印結果為, '__builtins__': , '__file__': 'c:\\users\\administrator\\102901.py', '__cached__': none, 'a': [1, 2, 3], 'b': (4, 5, 6), 'c': , 'dalao': }

print

(type

(dalao)

)# 列印結果為

''' 返回的是乙個字典,那麼就可以向字典中新增key-value就相當於在全域性中建立了乙個變數(一般不建議這麼做)

'a': [1, 2, 3], 'b': (4, 5, 6), 'c': , 'dalao': }

'''print

(a)# 列印結果為[1, 2, 3]

print

(dalao[

'a']

)# 列印結果為[1, 2, 3]

'''向dalao中修改乙個key-value'''

dalao[

'c']

=1000

# 向字典中新增key-value就相當於在全域性中建立了乙個變數(一般不建議這麼做)

print

(c)# 列印結果為1000

有定義的函式中

a =

1def

fn1():

a =10print

(locals()

)# 輸出函式內的字典# 在函式內部呼叫locals()會獲取到函式的命名空間

locals()

['b']=

20# 可以通過方法來操作函式的命名空間,但是也是不建議這麼做

print

(locals()

)# 輸出函式內的字典# 在函式內部呼叫locals()會獲取到函式的命名空間

fn1(

)'''結果為

'''print

(locals()

)# 輸出全域性的字典

'''結果為

, '__builtins__': ,

'__file__': 'c:\\users\\administrator\\desktop\\102902.py',

'__cached__': none,

'a': 1,

'fn1': }

'''

例子:

a =

1def

fn1():

a =10print

(locals()

)# 第1次列印內部的命名空間字典

print

(globals()

)# 第一次列印全域性變數

globals()

['a']=

20# 在函式內修改全域性變數的內容

print

(globals()

)# 第二次列印全域性變數

print

(locals()

)# 第2次列印內部的命名空間字典

fn1(

)# 輸出結果為

# 省略內容

'''完整的第一次列印全域性變數

省略內容開始

, '__builtins__': ,

'__file__': 'c:\\users\\administrator\\desktop\\102902.py',

'__cached__': none,# 結束省略內容

'a': 1,

'fn1': }

'''

五分鐘讀懂UML詳解

平時閱讀一些遠嗎分析類文章或是設計應用架構時沒少與uml類圖打交道。實際上,uml類圖中最常用到的元素五分鐘就能掌握,下面趕緊來一起認識一下它吧 一 類的屬性的表示方式 在uml類圖中,類使用包含類名 屬性 field 和方法 method 且帶有分割線的矩形來表示,比如下圖表示乙個employee...

C 命名空間,5分鐘詳解

在c 中,名稱 name 可以是符號常量 變數 函式 結構 列舉 類和物件等等。工程越大,名稱互相衝突性的可能性越大。另外使用多個廠商的類庫時,也可能導致名稱衝突。為了避免,在大規模程式的設計中,以及在程式設計師使用各種各樣的c 庫時,這些識別符號的命名發生衝突,標準c 引入關鍵字namespace...

五分鐘讀懂什麼是容器雲

說起 容器 大家的第一反應肯定是日常生活中使用的鍋碗瓢盆,或者裝運貨物的箱子盒子,用來盛放各種各樣的物品。那麼拿港口碼頭來說,每天都要通過船舶向外運送大量的貨物。裝貨的時候肯定不會直接扔進船艙,所以每個碼頭都會用大量的貨櫃來運載貨物。有了這些貨櫃,貨物不用雜亂無章地堆放在一起,又可以按照分類一層一層...