2010-08-02 52 views
26

所以我剛剛學習python(我知道很多其他語言),我對某些東西感到困惑。我認爲這是由於缺少文檔(至少我能找到)。在一些網站,我讀過,你應該從object派生類:從python中的`object`派生類

 

class Base(object): 
    pass 
 

但我看不出有什麼,做或爲什麼或什麼時候你應該這樣做。有沒有官方文件,我錯過了?這是一個3.x功能嗎?

+0

我看了這裏http://docs.python.org/tutorial/classes.html – Falmarri 2010-08-02 01:09:09

回答

22

主要是它不無論你是否從對象繼承,都會產生影響,但是如果你不知道有什麼bug會在你忘記了你決定不打擾的時候趕上你。

一些微妙的事情就無法正常工作,如果你不最終從對象繼承:在經典類

  1. 使用屬性只有部分工作:get作品還好,但set做奇怪的事情。
  2. 傳統類中的多重繼承的行爲與源自對象的類的行爲不同。
  3. 如果您嘗試將經典類與那些子類對象混合,那麼多重繼承也不起作用。無論你做什麼,你想要保持一致。

有些人可以繼續使用經典課程,除非他們需要新的行爲,其他人則說總是使用新式課程,以避免後來在腳下自我射擊。如果你正在從事單人項目的工作,對你有好處;如果其共享項目與其他開發者保持一致。

+2

謝謝,這清理了很多。我希望這被記錄得更好 – Falmarri 2010-08-03 19:18:13

2

在Python 3中,類隱式擴展對象,不管你是否自己這麼說。

請參閱here