2010-11-05 44 views
34

Python類定義語法

class A: 
    ... 

class A(): 
    ... 

之間的差異我才意識到,一對夫婦我的課都被定義爲前者,他們工作得很好。空括號是否有所作爲?

回答

14

後者是舊版本Python的語法錯誤。在Python 2.x中,只要可能,您應該從object中派生出來,因爲只有new-style classes(源自object在Python 3.x中是可選的,因爲新樣式類是默認類)的幾個有用功能纔可用。

+4

python 3中不再是真;所有源自「對象」廢話的內容都會自動處理。 – Aerovistae 2013-09-19 19:10:53

35

雖然它可能不會在語法上是不正確使用空括號中的類定義,類定義中使用後,表示繼承,括號如:

class A(baseClass): 
    ... 

在Python中,一類首選語法聲明沒有任何基礎類很簡單:

class A: 
    ... 

,除非你是繼承其他類,不要使用括號。

docs on the matter應該讓你更好地理解如何在Python中聲明和使用類。