2023年8月31日 星期四

[Python] 全域變數與global

1. 如果函式中定義的區域變數與全域變數名稱相同,則使用的是區域變數,不是全域變數
2. 在函式中要改變全域變數的值,要先用global宣告

g_var = 1

def printGlobalVar():
    print("print global g_var = ", g_var)#在這裡沒有宣告區域變數,而是直接使用全域變數

def printLocalVar():
    g_var = 2 #宣告一個和全域變數同名的區域變數,將區域變數的值設為2
    print("print local g_var = ", g_var)

def modifyGlobalVar():
    global g_var #如果沒宣告這行,就跟 printLocalVar() 一樣,改的是區域變數
    g_var = 4

printGlobalVar()
printLocalVar()
print("print global g_var = ", g_var) #全域變數沒被修改過
modifyGlobalVar()#修改全域變數
print("print global(modified) g_var = ", g_var) #全域變數被修改了

結果:
print global g_var =  1
print local g_var =  2
print global g_var =  1
print global(modified) g_var =  4

沒有留言:

張貼留言