Python. Создание класса-списка, реализованный на основе массива
День добрый. Я в ооп на Python довольно не продолжительное время нахожусь(если можно так выразиться), и в связи с учебой этому ремеслу появился вопрос. Возможно ли создать класс-список, реализованный на основе массива? Этот класс-список принимает экземпляры других классов, а методы, которые находятся в этом классе - это те же методы, что и у структуры данных на Python(списка). Прошу помощи
class ClassList():
def __init__(self):
self.list = []
def __str__(self):
return self.list
def append(self, ob):
self.list.append(ob)
a = input("Введите данные: ").split(', ')
car = Car(a[0], a[1], a[2], a[3], a[4], a[5], a[6])
array = ClassList()
array.append(car)
array.append(car_copy)
print(array.__str__())
А это то, что получается на выходе, хотя метод str класса Car переопределен
[<classes.ChildClass_1.Car object at 0x03DA9E30>,
<classes.ChildClass_1.Car object at 0x03DCE610>]
Ответы (1 шт):
Возможно ли создать класс-список, реализованный на основе массива?
да, возможно.
Этот класс-список принимает экземпляры других классов,
тут понятно, что будут проблемы. Если вы решили действительно (например - в учебных целях) реализовывать список на массиве - то массив по определению "последовательность однотипных элементов". Соответственно, экземпляр произвольного (или тем более - разных) классов вы в такой список непосредственно не засунете.
Однако, если вы допускаете возможность работать с массивом указателей, каждый из которых будет указывать на свой объект-экземпляр "другого класса" - то так вполне можно. Более того, в Python список реализован именно по подобной схеме, а не как классический список.
а методы, которые находятся в этом классе - это те же методы, что и у структуры данных на Python(списка).
Ну, какие методы реализуете самостоятельно - такие будут. Хоть те же, хоть подобные, хоть какие-то специфические (если надо).