gpt4 book ai didi

python - 是否可以从子类更新在父类(super class)中初始化的对象?

转载 作者:行者123 更新时间:2023-11-30 23:34:54 25 4
gpt4 key购买 nike

假设我有一个类:

class SuperClass():
def __init__(self, number):
self._inputnumber = number
self._initallist = []

然后我想构建此类的子类,这些子类具有可以将项目添加到初始化列表、从中读取项目或从中删除项目的方法。例如。

class SubClass(SuperClass):
def __init__(self, number, current_line, new_line):
self._number = number
self._thisline = current_line
self._gohere = new_line
def execute(self):
(SuperClass._initallist).append(self._thisline + 1)

这是我正在尝试做的事情的一个粗略示例。我希望能够为几个类提供我的初始列表,以便他们都可以按照上面所示的方式对其进行操作。不过,在我的例子中,最终发生的是我收到一个 AttributeError 消息,指出我的父类(super class)没有指定的属性。

AttributeError: type object 'SuperClass' has no attribute '_initiallist'

关于如何执行此操作有任何提示吗?是否有可能或者我必须做其他事情才能达到这个结果?

最佳答案

_initallist是一个实例属性,您无法通过Super._initallist访问它。

我认为您想要做的事情如下。您需要在SubClass中初始化SuperClass。我认为如果这是一个正确的is-one关系,则SubClass中需要有一个number

class SuperClass():
def __init__(self, number):
self._inputnumber = number
self._initallist = []

class SubClass(SuperClass):
def __init__(self, number, current_line, new_line):
SuperClass.__init__(self, number)
self._thisline = current_line
self._gohere = new_line
def execute(self):
self._initallist.append(self._thisline + 1)

关于python - 是否可以从子类更新在父类(super class)中初始化的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17771337/

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