關於python全域性變數

2021-09-01 22:05:25 字數 788 閱讀 4858

描述

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,這時可能導致程式中的錯誤。這種錯誤是很難發現和更正的。全域性變數降低了函式或模組之間的通用性,不同的函式或模組都要依賴於全域...