2017-04-18 121 views
-2

我糊塗了,如果我現在做正確的事在我聲明瞭全局變量的方式......我必須在哪裏聲明我的全局變量?

我這樣做:

class Addition: 

    global a,b 
    a,b=1,3 

    def __init__(self): 
     pass 

    def add(self): 
     return a+b 

這是聲明的正確方法我的全局變量?或者我應該把它們放在init()構造中?喜歡這個?

class Addition: 

    def __init__(self): 
     self.a=1 
     self.b=2 

    def add(self): 
     return self.a + self.b 

應該使用哪一個?還是在聲明全局變量方面比這兩個更好?我想讓自己的程序儘可能易讀,以便其他人能夠輕鬆地理解和學習良好的實踐。

+1

我們在此討論全局變量或實例屬性嗎?你的第二個例子使用後者,與前者完全不同。當你有**多個實例**時應該發生什麼?使用全局變量,沒有意義,因爲所有狀態都是在實例之間共享的。 –

+3

在我看來,你還沒有理解類實例和全局變量之間的區別;無論如何,你的問題毫無意義。 –

回答

5

根本不應該使用全局變量,除非您可以避免它們。

你的第二個例子實際上並不使用全局變量。這是你應該做的。

相關問題