更改嵌套类中的属性值

Change attribute value in nested classes

提问人:paulo01 提问时间:6/7/2023 更新时间:6/7/2023 访问量:21

问:

我面临着一个我无法解决的小问题。我有一个上层类,其中包含来自下层类的对象列表作为属性。我想从上层类的函数修改下级类对象的属性。

这是我的代码:

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()
print(oak.leafs[0].color)

我希望显示“蓝色”,但它显示“无”。 你们知道如何解决这个问题吗?print(oak.leafs[0].color)

Python 嵌套 属性

评论

1赞 Axe319 6/7/2023
oak.change_color()?

答:

3赞 user2390182 6/7/2023 #1

您永远不会调用更改颜色的函数:

oak = Tree()
oak.change_color()  #  <- !!
print(oak.leafs[0].color)
# blue