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

嵌套类属性值修改问题:Tree类修改Leaf属性未生效求助

问题原因

你定义的change_color方法根本没被调用!实例化Tree后,叶子的color属性还是初始化时的默认值None,所以自然打印不出'blue'。

修复代码

只需要在打印前调用change_color方法即可:

class Leaf:
    def __init__(self, size = None, color = None):
        self.size = size
        self.color = color
        
class Tree:
    def __init__(self):
        self.leafs = []
        self.leafs.append(Leaf(size=1))
        self.leafs.append(Leaf(size=2))
        
    def change_color(self):
        self.leafs[0].color = 'blue'
        self.leafs[1].color = 'green'

oak = Tree()
oak.change_color()  # 新增这行调用修改颜色的方法
print(oak.leafs[0].color)

运行这段代码后,就会输出预期的blue。

可选优化

如果希望叶子创建后直接拥有指定颜色,也可以把颜色设置逻辑整合到Tree的初始化方法里,或者给Leaf类的color参数设置默认值,比如:

class Leaf:
    def __init__(self, size=None, color='blue'):  # 直接设置默认颜色
        self.size = size
        self.color = color

不过这需要根据你的实际需求选择,当前问题的核心还是遗漏了方法调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 20:32:36