请考虑以下代码:
class SomeClass:
def __init__(self):
self.foo = None
some_list = [SomeClass()] * 5
此代码的问题在于some_list
的所有 5 项都引用了同一个 SomeClass
实例。如果我做some_list[0].foo = 7
,那么我得到some_list[1].foo
等于7
,等等。
那么如何在列表中实例化N
不同的SomeClass
实例呢?
解决方案:使用列表理解
class SomeClass:
def __init__(self):
self.foo = None
some_list = [SomeClass() for _ in range(5)]