python3裡面對全域性變數只能引用不能修改,如果修改需要加上global宣告。
b = 12#一般b沒有初始值不會報錯
#但GUI和建立類的例項混合程式碼可能會報錯
def get():
global b
b = b + 2
return b
print(get())
14
複製程式碼
L = [1, 2]
def get():
L = 2
return L
print(get())
print(L)
#get()函式內部的L看成了初始化了一個區域性變數的操作,而全域性的L並沒有改變。
2
[1, 2]
複製程式碼
L = [1, 2]
def get():
global L
L = 2
return L
print(get())
print(L)
#以上程式碼就會修改外部的全域性變數
2
2
複製程式碼
b = 12
def get():
return b
print(get())
#完全ok
12
複製程式碼
b = 12
def get():
b = b + 2
return b
print(get()
#報錯
複製程式碼
def get():
global b
b = 4
b = b + 2
return b
print(get())
print(b)
#還能這樣用
6
6
複製程式碼