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

Python新手问题:类内部实例化另一个类的实例共享问题

问题解决方法

你遇到的核心问题是:Class_two里的new_object是类属性,类属性属于类本身,所有Class_two的实例都会共享这个属性,所以不管创建多少个Class_two实例,用的都是同一个Class_one对象,修改其中一个的name会覆盖所有实例的对应值。

要实现每个Class_two实例拥有独立的Class_one对象,只需把new_object改成实例属性,在Class_two的__init__方法里初始化即可:

class Class_one:
    name = "First"

class Class_two:
    def __init__(self):
        # 每个Class_two实例创建时,都会生成新的Class_one实例
        self.new_object = Class_one()

instance_one = Class_two()
instance_one.new_object.name = "Second"
instance_two = Class_two()
instance_two.new_object.name = "Third"

print(instance_one.new_object.name)  # 输出 Second
print(instance_two.new_object.name)  # 输出 Third

__init__是Python类的构造方法,每次创建类的实例时都会自动执行这个方法。把self.new_object = Class_one()放在这里,就能保证每个Class_two实例都有属于自己的Class_one对象,修改其中一个的属性不会影响其他实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 23:52:04