2016-12-06 117 views
5

我正在尋找一種簡單的方法來從函數或類中定義多個全局變量。Python - 定義多個全局變量的最簡單方法

最明顯的辦法是做到以下幾點:

global a,b,c,d,e,f,g...... 
a=1 
b=2 
c=3 
d=4 
..... 

這是一個簡單的例子,但本質上我需要定義數十個基於特定功能的輸入全局變量。理想情況下,我想要定義全局名稱和值,而不必單獨更新值和定義全局名稱。

添加一些更清晰。

我找蟒蛇相當於本(JavaScript的)的:

var a = 1 
    , b = 2 
    , c = 3 
    , d = 4 
    , e = 5; 
+2

不,你不需要那樣做。這是幾乎任何事情都完全錯誤的方式。您需要查看列表,字典,函數和返回值。 – TigerhawkT3

+0

有__very__當然是一種無需單個全局編寫代碼的方法。 –

+1

@ TigerhawkT3我完全同意,這裏的問題是我編輯非常寫得不好的項目。重寫它雖然會花費很大的努力,所以我被困在一塊岩石和一個堅硬的地方之間,基本上只是想在我的約束條件下想出解決方案。哪些是從函數內定義全局變量的值。 –

回答

2

好吧,我是新的自己,這對我來說是很大的問題,也是我認爲它有問題的措辭做(當用谷歌搜索時,我用同樣的方式表達了它,並且無法完全找到與我正在嘗試做的事情相關的答案)。請,有人糾正我,如果有一個原因,我不應該這樣做,但是......

設置全局變量列表將是爲他們設立一類模塊中的最好方法。

class globalBS(): 
    bsA = "F" 
    bsB = "U" 

現在你可以打電話給他們,通過引用它們這樣改變他們等在其他功能:

print(globalBS.bsA) 

將在該模塊上的任何功能打印「F」。這樣做的原因是,蟒蛇治療類作爲模塊,所以此工程進行的順利建立全球變量 - 的列表,如試圖與多個選項,比如目前我做的界面時,無需進行復制和粘貼各種功能中的巨大全局列表。我會盡可能縮短課程名稱 - 可能是一個或兩個字符而不是整個單詞。

希望有幫助!

-1

如果它們在概念相關的一個選擇是讓他們在一個字典:

global global_dictionary 
global_dictionary = {'a': 1, 'b': 2, 'c': 3} 

但因爲它是評論你的問題,這不是處理產生這個問題的問題的最佳方法。

+0

首先,全局是錯誤的路要走。其次,字典是可變的,可以在不被重新分配的情況下進行變異。 – TigerhawkT3

+0

@Martinbaste,我認爲這種方法,但它需要編輯所有的調用全局變量的代碼.... –

-1

globals()內建函數引用當前模塊中的全局變量。您可以像使用正常詞典一樣使用它

globals()['myvariable'] = 5 
print(myvariable) # returns 5 

對所有變量重複此操作。

但是,你肯定不應該這樣做

+0

'globals()'可能比使用'global'更糟糕的想法。 – TigerhawkT3

+0

他在運行時如何使用'global'來定義來自用戶輸入的具有未知名稱和值的變量? –