Python全局變量關鍵字global的簡單使用
簡介:
1、global是Python中的全局變量關鍵字。
2、全局變量是編程術語中的一種,源自於變量之分。
3、變量分為局部與全局,局部變量又可稱之為內部變量。
4、由某對象或某個函數所創建的變量通常都是局部變量,隻能被內部引用,而無法被其它對象或函數引用。
5、全局變量既可以是某對象函數創建,也可以是在本程序任何地方創建。全局變量是可以被本程序所有對象或函數引用。
6、global關鍵字的作用是可以使得一個局部變量為全局變量。
案例1:全局無法使用局部變量。
# -*- coding: utf-8 -*- def test1(): # 局部變量 local local_var = "a" print(local_var) # 全局無法使用局部變量,隻有對應的局部作用域可用 # print(local_var) # NameError: name 'local_var' is not defined
案例2:全局變量,任意范圍均可使用。
global_var = 1 def test2(): # 函數內使用全局變量 print(global_var + 1) def inner(): # 嵌套函數內使用全局變量 print(global_var + 2) return global_var + 3 # 返回值內使用全局變量 # 函數外使用全局變量。 print(global_var)
案例3:函數內定義的局部變量
def test3(): # 函數內變量,但對於下級函數就是全局變量,對於外部來說就是局部變量 func_var = 1 def inner(): print(func_var) return func_var return inner() test3()
案例4:函數間global關鍵字的作用
def test4(): # global關鍵字作用 global func_var func_var = 2 # 調用test5可以打印 func_var,去掉global會報錯。 test5() print(test5.__globals__) def test5(): print(func_var) test4()
案例5:不同文件模塊中的global,註意test6, test7為不同文件。
# a.py def test6(): # global關鍵字作用 global func_var func_var = 3 # b.py from a import test6 def test7(): print(test6.__globals__["func_var"]) # 不先執行test6的情況下會拋出異常。KeyError: 'func_var' test7() # KeyError: 'func_var'
案例6:不同文件模塊中的global,註意test6, test7為不同文件。
# a.py def test6(): # global關鍵字作用 global func_var func_var = 4 # b.py from a import test6 def test7(): print(test6.__globals__["func_var"]) # 先執行test6的情況下,test可以使用 func_var test6() test7() # 4
附:用global聲明多個變量需要用逗號分
num = 0 def cc(): global count,num count = count+1 num = num+2 print(count,num) cc() 3 2 # 可以函數中的global聲明能夠修改全局變量 num Out[24]: 2 # count Out[25]: 3 在使用全局變量的場合,也可用類變量代替 class C: count = 3 def cc(): count = C.count+1 print(count) cc() 4
結論:
1、隻導入包,global定義的全局變量沒有被加到globals裡面。
2、執行global所在的對應函數,global定義的函數內會存入對應變量,其他函數內則不會存入。
到此這篇關於Python全局變量關鍵字global的簡單使用的文章就介紹到這瞭,更多相關Python全局變量關鍵字global內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Python函數命名空間和作用域(Local與Global)
- 淺談Python從全局與局部變量到裝飾器的相關知識
- Python函數高級(命名空間、作用域、裝飾器)
- Python關鍵字之global與nonlocal
- python變量作用域與列表入門詳解