Есть ли Pythonic способ создать список клонированных предметов?
Рассмотрим следующий код:
class SomeClass:
def __init__(self):
self.foo = None
some_list = [SomeClass()] * 5
Проблема с этим кодом состоит в том, что все 5 пунктов some_list
ссылаются на тот же случай SomeClass
, Если я сделаю some_list[0].foo = 7
тогда я получаю some_list[1].foo
равно 7
, так далее.
Так как создать экземпляр N
разные SomeClass
экземпляры в списке?
1 ответ
Решение
Решение: использовать понимание списка
class SomeClass:
def __init__(self):
self.foo = None
some_list = [SomeClass() for _ in range(5)]