【问题标题】:Is there a Pythonic way to create a list of cloned items? [duplicate]是否有一种 Pythonic 方式来创建克隆项目列表? [复制]
【发布时间】:2019-01-10 19:15:20
【问题描述】:

考虑以下代码:

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 实例呢?

【问题讨论】:

  • 你的标题与你想要的相反
  • @roganjosh,现在好些了吗?
  • 您正在尝试创建一个类实例列表。至少对我来说,“克隆”意味着对内存中同一对象的引用

标签: python list instance clone construction


【解决方案1】:

解决方案:使用列表推导

class SomeClass:
    def __init__(self):
        self.foo = None

some_list = [SomeClass() for _ in range(5)]

【讨论】:

    猜你喜欢
    • 2013-11-18
    • 2021-10-19
    • 2015-07-02
    • 1970-01-01
    • 2012-02-15
    • 2015-07-06
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多