gpt4 book ai didi

python - 如何从 Python 中的继承类中正确调用基类方法(和构造函数)?

转载 作者:IT老高 更新时间:2023-10-28 20:25:31 25 4
gpt4 key购买 nike

假设我有一个 Base 类和一个从 Base 继承的 Child 类。从Python中的子类调用基类构造函数的正确方法是什么?我使用 super 吗?

这是我目前所拥有的一个例子:

class Base(object):
def __init__(self, value):
self.value = value
...

class Child(Base):
def __init__(self, something_else):
super(Child, self).__init__(value=20)
self.something_else = something_else
...

这对吗?

谢谢,博达·赛多。

最佳答案

没错。请注意,您也可以直接在 Base 类上调用 __init__ 方法,如下所示:

class Child(Base):
def __init__(self, something_else):
Base.__init__(self, value = 20)
self.something_else = something_else

这就是我通常这样做的方式。但不鼓励这样做,因为它在存在多重继承时表现不佳。当然,多重继承本身也有各种奇怪的影响,所以我像避免瘟疫一样避免它。

一般来说,如果你继承的类使用super,你也需要这样做。

关于python - 如何从 Python 中的继承类中正确调用基类方法(和构造函数)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2421307/

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