2013-06-02 59 views
5
的Python

例如,在下面的代碼:爲什麼一個班級在未啓動時會被「叫」? -

class test: 
    print "Hi" 

的Python會自動打印 '喜'。對不起,如果這是一個明顯的問題,但我不明白爲什麼Python會這樣做,除非啓動「測試」對象。 *我幾個月前剛剛開始編程,Python是我的第一語言,所以請放下一些憐憫。

回答

7

您正在建造一個班級;一個類的主體被作爲一個函數來執行來構建定義。該「功能」的本地命名空間形成組成該類的一組屬性。請參閱class statement文檔。

方法類體不執行;像函數定義一樣,你需要先調用它們。但是如果你不先給班級組織上課,你根本不知道班上有什麼方法。

同樣,在導入模塊時,模塊中的任何頂層代碼都會執行以形成模塊名稱空間。如果您將print "Hi"放入模塊中,它也會立即執行。

+0

我不認爲一個類的主體是作爲一個函數執行的。我相信它會在遇到它時執行(或者在它結束後立即執行)。此外,當你稍後調用一個類時,在定義之後,你實際上正在調用它的__init __()函數(或者它是基類,如果它沒有定義它自己的話)。 – martineau

相關問題