1.主函式if __name__ == '__main__':
中定義的變數,預設為在外部定義的全域性變數,即相當於在py檔案開頭定義的一些變數,其他子函式可以引用;
2.如果子函式中,需要引用並修改全域性變數的話,需要加global關鍵字,如:
i =
0def
closure()
:global i
i +=
1print
(i)
3.當全域性變數是字典或者列表時,也可以不加global,程式會自動判斷為你在修改全域性變數,如:
i =[1
,2,3
]def
closure()
: i[0]
=100
print
(i[0
])
4.當全域性變數不是字典或者列表且你不加global時,對這一變數進行操作並不起作用,因為它只存在於子函式內部,當函式結束時這一變數自動**,回到主函式仍然是原來的值,如:
i =
1def
closure()
: i =
2print
(i)# 輸出結果為 2
print
(i)# 輸出結果為 1,因為 i=2 這句只在子函式內部起作用
5.如果只是單純引用全域性變數做一些判斷的話(不涉及變數修改),可以不加global直接引用:
i =
1def
closure()
:if i <
100:
print
(i)
python中關於全域性變數
title date br python中關於全域性變數 2019 09 03 15 58 02 0700 python基礎 python num 1 定義全域性變數 def test1 num 2 print num def test2 print num test1 test2 2 1 並未如所...
關於python全域性變數
描述global best pec1 def main best prec1 1 train def train print best prec1 報錯 best prec1沒有定義。原因 當函式中定義同名的區域性變數時,原來定義的全域性變數會被區域性變數覆蓋掉。因此train 中就不再有變數bes...
python中全域性變數
在python中,全域性變數一般有兩種使用方式 第一種 是在乙個單獨的模組中定義好,然後在需要使用的全域性模組中將定義的全域性變數模組匯入。第二種 直接在當前的模組中定義好,然後直接在本模組中通過global宣告,然後使用 具體的方法如下所示 第一種 solr url def tt global s...