gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 15:06:17 25 4
gpt4 key购买 nike

当使用 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)

在第一行调用父类(super class)构造函数时,Python 有什么不同吗?

最佳答案

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

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com