python - 如果我们在子类中调用父类(super class)构造函数作为第一行,这有什么关系吗?

标签 python python-3.x

当使用Java和C++时,我们必须在子类的第一行调用父类(super class)构造函数。

示例:

public class MySubClass extends MyClass {
    public MySubClass() {
        super(); // must be first line code
        ... some code in the constructor ...
    }
}

使用 Python 时,我们不必在第一行调用父类(super class)构造函数:

class MySubClass(MyClass):
    def __init__(self):
        ... some code ...
        MyClass.__init__(self)

在Python中将父类(super class)构造函数作为第一行调用时有什么区别吗?

最佳答案

当然可能会有差异,但如果你知道自己在做什么,那就没问题了 无论如何。

class MyClass:
    def __init__(self):
        self.a = 1

class MySubClass(MyClass):
    def __init__(self):
        self.a = 2    
        MyClass.__init__(self)
    

对比

class MySubClass(MyClass):
    def __init__(self):
        MyClass.__init__(self)        
        self.a = 2           

self.a 中的结果值会有所不同,但如果是有意的,它可能是有效的代码。

关于python - 如果我们在子类中调用父类(super class)构造函数作为第一行,这有什么关系吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66024855/

相关文章:

python - 使用 issubset 和空集时如何返回 False

Python:拆分字符串并获取位置

python-3.x - 将 CSV 输出从 Azure 函数保存到 Azure 容器 (Python 3X)

python - 如何在Python中使用 `issubset`作为字典

python - scc 风格的 QPushbutton

python - 带有 python docker 容器的 AWS Lambda 的无效入口点

python - 使用用户输入启动类的新对象

python - 将多行(读取为单行/输入)粘贴到 Spyder 控制台

python-3.x - datetime strftime %s 在 Windows 上崩溃

python-3.x - 以 csv 形式获取特征提取结果