global 全局變量的用法


說明:i 和foo()都為全局變量,i 是在模塊文件頂層注冊的,所以為全局變量,他能夠在函數內部進行引用而不需要再特意聲明是全局變量,且foo()函數也是全局變量

 

1.當沒有局部變量時,print(i,'in foo()'),根據LEGB規則,打印的是全局變量;print(i,'global')也是全局變量

如下

i = 1
def foo():
    print(i,'in foo()')   #局部變量
print(i,'global')   #全局變量
foo()
print(i,'未定義')

#輸出
1 global
1 in foo()
1

2.當設置局部變量時,print(i,'in foo()') 打印局部變量,print(i,'global'),打印全局變量,print(i,'未定義'),打印全局變量 1

i = 1
def foo():
    i=5
    print(i,'in foo()')   #局部變量
print(i,'global')   #全局變量
foo()
print(i,'未定義')

#輸出
1 global
5 in foo()
1 未定義

3.當把局部變量設置成global 全局變量時,print(i,'in foo()'),打印的還是局部變量,print(i,'global'),沒有變量,始終是def 之前定義的變量i=1;

 print(i,'未定義'),根據LEGB 規則,尋找全局變量,因全局變量設置為i =5,打印出來也是5

i = 1
def foo():
    global i
    i=5
    print(i,'in foo()')   #局部變量
print(i,'global')   #全局變量
foo()
print(i,'未定義')


#輸出
1 global
5 in foo()
5 未定義

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM