假设我有一个类:
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/