gpt4 book ai didi

python - 子类化 Python 类以继承父类(super class)的属性

转载 作者:行者123 更新时间:2023-12-05 08:21:08 26 4
gpt4 key购买 nike

我正在尝试从父类(super class)继承属性,但它们未正确初始化:

class Thing(object):
def __init__(self):
self.attribute1 = "attribute1"

class OtherThing(Thing):
def __init__(self):
super(Thing, self).__init__()
print self.attribute1

这会引发错误,因为 attribute1 不是 OtherThing 的属性,即使 Thing.attribute1 存在。我认为这是继承和扩展父类(super class)的正确方法。难道我做错了什么?我不想创建 Thing 的实例并使用它的属性,为简单起见,我需要它继承它。

最佳答案

你必须给,如argument , super() 的类名(调用它的地方):

super(OtherThing, self).__init__()

根据 Python docs :

... super can be used to refer to parent classes without naming them explicitly, thus making the code more maintainable.

所以你不应该给父类。请参阅 Python docs 中的示例也是:

class C(B):
def method(self, arg):
super(C, self).method(arg)

关于python - 子类化 Python 类以继承父类(super class)的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21358312/

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