描述
global best_pec1
def main():
...best_prec1 = 1
train()
...def train():
print(best_prec1)
報錯: best_prec1沒有定義。
原因:當函式中定義同名的區域性變數時,原來定義的全域性變數會被區域性變數覆蓋掉。因此train()
中就不再有變數best_prec1
。
定義的表現形式為variable = xx
, 即變數名字在等號左邊。賦值也是這個格式,所以會容易產生上述錯誤,在賦值時被錯誤地當成定義。
正確用法
函式中直接使用全域性變數
def main():
# best_prec1仍舊是全域性變零,將其值直接賦給了a,也並沒有改變best_prec1的值。
a = best_prec1
函式中為全域性變數賦值時,加上global
,使得不被覆蓋成區域性變數。
def main():
# 加上關鍵字global,best_prec1仍舊是全域性變數,不會被覆蓋。
global best_prec1
best_prec1 = 3
...train()
...def train():
print(best_prec1)
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 並未如所...
關於 全域性變數
全域性變數一般這樣定義 1。在一類的.cpp中定義 int myint 然後再在要用到的地方的.cpp裡extern int myint 這樣就可以用了。2。在stdafx.cpp中加入 int myint 然後在stdafx.h中加入 extern int myint 這樣定義以後無論在什麼檔案中...
python 全域性變數
應該盡量避免使用全域性變數。不同的模組都可以自由的訪問全域性變數,可能會導致全域性變數的不可預知性。對全域性變數,如果程式設計師甲修改了 a的值,程式設計師乙同時也要使用 a,這時可能導致程式中的錯誤。這種錯誤是很難發現和更正的。全域性變數降低了函式或模組之間的通用性,不同的函式或模組都要依賴於全域...