簡體   English   中英

從基本的python類調用super()是否有目的?

[英]Is there a purpose in calling super() from a basic python class?

我在這里有一個奇怪的問題。 假設我要制作一個簡單的基本類,如下所示:

class MyClass(object):

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

調用super()有什么目的嗎? 我的班級只有默認的object父班級。 之所以這樣問,是因為當我創建一個新類時,我的IDE會自動為我提供此代碼段。 我通常刪除super()函數,因為我看不到它有任何用途。 但是也許我想念什么?

您沒有義務調用object.__init__ (通過super或其他方式)。 它什么也沒做。

但是,以這種方式在__init__函數(或任何調用超類的函數)中編寫該代碼段的目的是給您一些靈活性,使他們無需修改該代碼即可更改超類。

因此,它不會給你太多,但它確實買你的超能力改變MyClass一個不同的類,它的__init__同樣接受無參數,但也許不會做一些事情,確實需要由子類調用__init__功能。 全部都無需修改MyClass.__init__

您的電話是否值得擁有。

同樣在此特定示例中,您可以完全省略MyClass.__init__ ,因為您的也不執行任何操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM