繁体   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