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