从基本的python类调用super()是否有目的?

时间:2013-12-23 00:22:11

标签: python

我这里有一个奇怪的问题。假设我正在制作一个简单的基础课程,如下所示:

class MyClass(object):

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

致电super()有什么目的吗?我的类只有默认的object父类。我问这个的原因是因为我的IDE在创建新类时自动给了我这个片段。我通常删除super()函数,因为我没有看到任何离开它的目的。但也许我错过了什么?

1 个答案:

答案 0 :(得分:1)

您没有义务致电object.__init__(通过super或其他方式)。它什么都不做。

但是,在__init__函数(或任何调用超类的函数)中以这种方式编写该代码段的目的是为了在不修改代码的情况下为更改超类提供一些灵活性。

所以它并没有给你带来太多的好处,但它确实让你有能力将MyClass的超类更改为另一个类__init__同样接受no-args,但也许 做了什么,确实需要被子类__init__函数调用。所有这些都无需修改您的MyClass.__init__

你的电话是否值得拥有。

同样在这个特定示例中,您可以完全忽略MyClass.__init__,因为您的任何内容都没有。