是否有一种 Pythonic 方式来创建克隆项目列表?

Is there a Pythonic way to create a list of cloned items?

考虑以下代码:

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)]