2015-12-26 48 views
0
def doSomething() 
    bucket = s3.get_bucket(BUCKET_NAME) 
    ... 

if __name__=="__main__": 
    s3 = boto.connect_s3() 
    doSomething() 

VSPython - 模塊級變量與函數參數?

def doSomething(s3) 
    bucket = s3.get_bucket(BUCKET_NAME) 
    ... 

if __name__=="__main__": 
    s3 = boto.connect_s3() 
    doSomething(s3) 

是否有一個最佳實踐爲這種情景的?這仍然是一個簡單的情況。有時在doSomething上有4-5個這樣的變量需要使用,而我從來沒有開發出處理這些變量的一致風格。

+0

模塊級變量都相同的問題全局變量,哪些是壞的原因有無數。如果有的話,請儘量使用。 –

+0

如果不叫做'main',第一個例子是無效的。 –

回答

2

我會去功能參數,因爲它變得更容易測試功能更容易嘲笑。

而且文檔和重用變得更好

+0

甚至更​​好 - 如果您有一組函數都取決於相關的數據值,請定義一個類。 –