Я хочу создать объект, который будет содержать другие объекты, и вызвать метод для каждого из объектов, которые он содержит. Конечная цель - создать скрипт для программы. Каждый объект содержит команду, которая может быть напечатана с помощью printCommand()
, в конечном итоге в файл. Мое оригинальное решение было таким:
a = ObjectList()
a.appendObject(Object())
b = ObjectList()
b.appendObject(Object())
listOfObjects = [a, b]
for Object in listOfObjects:
Object.printCommand()
Я создаю переменную списка, добавляю объекты в список thw, затем зацикливаюсь на нем, выдавая команду. Хотя это работает, я в основном делаю это упражнение для обучения программированию, поэтому я хочу знать, есть ли более элегантное решение, чем написание кода для добавления, выталкивания и т. Д. Элементов в список объекта. Поскольку list
уже содержит эти функции, я подумал, что правильной вещью будет расширение list
:
class Object:
def __init__(self):
self.Command = "Script Command"
def printCommand(self):
print(self.Command)
class ObjectList(list):
def printCommand(self):
for Object in self.LISTCONTENTS:
Object.printCommand()
Тем не менее, я в недоумении относительно того, как бы я сказал ему перебирать его собственное содержимое. Что принадлежит на self.LISTCONTENTS
? Где объект list
хранит его содержимое и как вы получаете к нему доступ из метода?