![](/img/trans.png)
[英]Python is there a difference calling a method from super, or from the class
[英]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.