2013-12-23 28 views
0

我在這裏有一些奇怪的問題。比方說,我做一個簡單的,基本類,如下所示:從基本的python類調用super()是否有目的?

class MyClass(object): 

    def __init__(self): 
     super(MyClass, self).__init__() 

有呼籲super()任何目的?我的班級只有默認的object父級。我之所以問這是因爲我創建一個新類時,IDE會自動給我這個片段。我通常刪除super()函數,因爲我沒有看到任何目的。但也許我錯過了什麼?

回答

1

您無需致電object.__init__(通過super或其他方式)。它什麼也沒做。

但是,以這種方式在__init__函數(或調用超類的任何函數)中編寫該代碼段的目的是爲了給您一些靈活性來更改超類而不修改該代碼。

所以它不買你多少,但它確實買你的MyClass超更改爲不同的類,其__init__同樣接受無參數的能力,但是這或許做一些事情,確實需要被子類__init__函數調用。全部不用修改您的MyClass.__init__

你的電話是否值得擁有。

同樣在這個特殊的例子中,你完全可以省略MyClass.__init__,因爲你也不會做任何事情。

+0

感謝您的澄清! – achedeuzot

相關問題