2016-09-26 63 views
1

我想將腳本的代碼功能分成一個新的模塊。我想定義一些配置作爲模塊中的參數傳遞。然後,在模塊中,我將此配置定義爲全局。這是一個好習慣嗎?有更好的解決方案嗎?Python - 使模塊方法變量成爲全球最佳實踐?

主腳本:

import myModule 

config = { 
    "foo1" : "bar1", 
    "foo2" : "bar2", 
    "foo3" : "bar3" 
} 

myModule.execute(config) 

模塊:

def execute(config): 
    global CONFIG 
    CONFIG = config 
    value1, value2 = handleRequest() 
    print(value1) 
    print(value2) 

def handleRequest() 
    value1 = doSomething(CONFIG["foo1"]) 
    value2 = doSomethingElse(CONFIG["foo2"]) 
    return value1, value2 
+0

由於需要改進的工作代碼屬於Code Review,因此我正在投票結束此問題作爲題外話題。 – Carcigenicate

+4

@Carcigenicate這將在CR上關閉,因爲它是「示例代碼」 – Kaz

回答

2

,當我需要這類全局變量的什麼我通常做的是使一個類,並定義它們在那裏。因此,例如一個Configuration類,其中存儲了值。

這具有以下優點(不是結局列表):

  • 類常量/變量「屬於」的東西哪個更適用(配置在這種情況下)。
  • 可以隱藏計算代碼(即功能可以合併到同一個類中)
  • 可以防止名稱衝突。
  • 如果將來需要製作多個配置實例,那麼這個問題就不會那麼嚴重了。