这两者的区别是什么:

class Child(SomeBaseClass):
    def __init__(self):
        super(Child, self).__init__()

以及:

class Child(SomeBaseClass):
    def __init__(self):
        SomeBaseClass.__init__(self)

我见过super在只有单一继承的类中被大量使用.我能理解为什么你会在多重继承中使用它,但不清楚在这种情况下使用它有什么好处.

推荐答案

单继承中使用super()的好处微乎其微——大多数情况下,不必将基类的名称硬编码到每个使用其父方法的方法中.

然而,如果没有super(),几乎不可能使用多重继承.这包括常见的习惯用法,如mixin、接口、抽象类等.这将扩展到后来扩展您的代码.如果后来有人想编写一个扩展Child和mixin的类,那么他们的代码将无法正常工作.

Python相关问答推荐

取相框中一列的第二位数字

Odoo onchange for invoice_Status of sale事件.订单未触发

如何使用函数正确索引收件箱?

Python中两个矩阵的自定义Hadamard风格产物

如何从格式为note:{neighbor:weight}的字典中构建networkx图?

将从Python接收的原始字节图像数据转换为C++ Qt QIcon以显示在QStandardProject中

使用多个性能指标执行循环特征消除

比较2 PD.数组的令人惊讶的结果

按列分区,按另一列排序

用NumPy优化a[i] = a[i-1]*b[i] + c[i]的迭代计算

如何获取numpy数组的特定索引值?

如果值发生变化,则列上的极性累积和

使用Python更新字典中的值

在Python 3中,如何让客户端打开一个套接字到服务器,发送一行JSON编码的数据,读回一行JSON编码的数据,然后继续?

使用BeautifulSoup抓取所有链接

使用Python从rotowire中抓取MLB每日阵容

Python避免mypy在相互引用中从另一个类重定义类时失败

Discord.py -

BeautifulSoup:超过24个字符(从a到z)的迭代失败:降低了首次深入了解数据集的复杂性:

将链中的矩阵乘法应用于多组值