2012-09-24 63 views
1

在班級中擁有所有代碼是否合適?我有一個課程可以完成我所有的計算任務。但是我在課堂外還有其他所有的代碼(主要用於調用這個類)。它看起來像這樣。哪個類首先在Python中執行?

class bigClass: 
    executing here 
    functions and whatnot 
    blah blah 

b=bigClass() 
b.bigClassfunction() 

我的問題是這些最後兩行是否應該在他們自己的類中去?或者,我只是讓他們浮動約束不上課。

+0

我認爲這可能取決於上下文,如果函數只與它們應該在類中的類有關(它可以是@staticmethod或@classmethod)。 –

回答

1

這絕對沒問題,沒有必要把他們放在課堂上。如果您需要多次重複該代碼,函數可能是一個選項。

一個類不應該用於這樣的事情;類的作用,如Wikipedia中,是

在面向對象的編程中,類是用來 創建其自身的實例的構建體 - 被稱爲類實例,類 對象,實例對象或只是對象。一個類定義了 構成成員,使其實例具有狀態和 行爲。數據字段成員(成員變量或實例 變量)使類實例保持狀態。其他種類的 成員,特別是方法,啓用類實例的行爲。 類定義了它們的實例的類型。

雖然您可以將此代碼嵌入到類中,但如果需要僅執行一次,則不需要將其放入類中。

編輯: 正如我現在明白了,混亂是如何指示蟒蛇首先運行該代碼,就像你在java使用在ProjectNamemain方法做。在python中,代碼自上而下運行。每項聲明都是在旅途中計算的。例如,這就是爲什麼你不能在其定義之上引用一個類。

obj = Klass() 
class Klass: pass #Doesn't work! 
0

你的問題不是特別清楚,但你會總是把類中相關的類的所有代碼。其他方面沒有設計意義。

+0

這與班級無關。這只是正常的代碼,超出了任何課程。我只是想知道,如果代碼需要它自己的類,並且該類是特殊的,它會在所有其他類之前執行(有點像Java中的主類)。沒有必要,只是想知道這是不是練習。 – user1675111

+0

java中的'main'是一種方法,而不是一個類! – lolopop

+4

python不是java。當他們不支持你的設計時不需要上課。 – ch3ka

0

一些人把他們的「主」碼成塊,如:

if __name__ == '__main__': 
    foo() 
    bar() 

this線程獲取更多信息。

不是然而,爲了有類使用類。這不是「Pythonic」。