2017-08-24 53 views
1

我有很多功能都共享相同的參數。他們將多次輸入和輸出該參數。(Python)我應該使用參數還是使其成爲全局參數?

例如:

a = foo 
a = fun(a) 
a = bar(a) 

def fun(a): 
    ... 
    return a 

def bar(a): 
    ... 
    return a 

更重要的是親語法正確,傳遞參數通過函數,或者讓它成爲所有功能一起工作全局訪問?

a = foo 
fun() 
bar() 

def fun(): 
    global a 
    ... 

def bar(): 
    global a 
    ... 
+6

使用參數可以更輕鬆地重用代碼。如果這些功能都是相關的並且處理類似的數據,那麼您也可以考慮讓一個班級將所有內容捆綁在一起。這也是非常可靠的。 – kindall

+2

在這種情況下,您最好傳遞一個對象並操作字段。 –

+2

我強烈建議不要使用全局變量。它們在實踐中很少使用。 – Alexander

回答

3

對於方法的可重用性,傳遞參數是更好的方法。

+0

是否有一個點通過許多參數是不合理的? – tisaconundrum

+3

@tisaconundrum你總是可以將你的數據包裝在一個容器或對象中,並通過它,而不是多個參數... –

4

越是本地化的變量越好。

這實際上是任何編程語言的公理。

struct s in C(和FORTRAN等其他語言中的等價物)從這個實現中成長起來,面向對象的編程緊隨其後。

2

我同意其他答案,但只是爲了完成,正如其他人指出,類聽起來像一個好主意。考慮以下。

class myClass(object): 
    def __init__(self, foo): 
     self.a = foo 

    def fun(self): 
     # do stuff to self.a 

    def bar(self): 
     # do something else to self.a 

c = myClass(foo) 
c.fun() 
c.bar() 
相關問題