Так позволяет сказать, что у меня есть класс:Возможно ли обновить объект, инициализированный в суперклассе из подкласса?
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 о том, что мой SuperClass не имеет именованного атрибута.
AttributeError: type object 'SuperClass' has no attribute '_initiallist'
Любые советы о том, как это сделать? Возможно ли это, или мне нужно сделать что-то еще для достижения этого результата?
Что такое obj в этом контексте? Это класс SharedObject? – user2560035
Это экземпляр класса 'SharedObject'. Я должен был называть его «sharedobj» точно так же, как и атрибут. Занимает ли он вообще то, что вы пытаетесь сделать? – RussW
В конце концов я закончил работу, я понял, что мне действительно не нужно наследование, и я могу просто передать объект SharedObject как бы в мой оператор execute в качестве параметра, а затем выполнить, чтобы он мог действовать на исходный список – user2560035