You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将类实例多次添加到列表且修改单个实例不影响其他?

解决Python列表中实例属性同步修改的问题

你当前代码的核心问题是:列表里的所有元素都是同一个myClass实例的引用。你只创建了一次a = myClass(3),循环里反复把这个同一个对象追加到列表里,所以修改任意一个位置的属性,本质都是在修改那个唯一的实例,所有元素的属性自然会同步变化。

要实现你想要的效果,只需要在每次循环时创建新的实例,而不是复用同一个对象。

修改后的代码示例

class myClass():
    def __init__(self, value):
        self.value = value

l = []

for i in range(5):
    # 每次循环新建一个实例,而非复用同一个a
    l.append(myClass(3))

l[0].value = 1

for i in l:
    print(i.value)

或者也可以把实例创建放在循环内的变量里:

class myClass():
    def __init__(self, value):
        self.value = value

l = []

for i in range(5):
    a = myClass(3)
    l.append(a)

l[0].value = 1

for i in l:
    print(i.value)

运行后输出就是你期望的:

1
3
3
3
3

因为现在列表中的每个元素都是独立的myClass实例,修改第一个实例的value只会影响它自己,其他实例的属性不受影响。

内容的提问来源于stack exchange,提问作者MacoPuco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 10:40:37