Как создавать разные объекты со списком конструкторов - PullRequest
0 голосов
/ 26 марта 2019

У меня есть список, в котором есть разные конструкторы разных классов. Но конструкторы всегда возвращают один и тот же объект, потому что у них одинаковое направление памяти.

У меня есть что-то вроде этого:

l=[class1(),class2(),class3()]
l2 = []

Если я пытаюсь создать с ним разные объекты, он возвращает один и тот же объект с тем же направлением памяти. Я делаю это:

for i in range(50):
    obj = l[random]
    l2.append(obj)

l2 имеет 50 объектов, но все объекты первого класса одинаковы и имеют одинаковое направление памяти. То же самое происходит с другими классами.

Я хотел бы иметь 50 разных объектов.

1 Ответ

0 голосов
/ 26 марта 2019

Вы должны вызывать конструктор класса каждый раз, когда хотите добавить экземпляр в список.Для этого я бы предложил вам использовать список классов, а не список экземпляров объектов (в противном случае вы просто добавляете те же ссылки на эти 3 экземпляра в список)

l=[class1,class2,class3]
for _ in range(50):
    cls = l[random]
    l2.append(cls())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...