python成员变量列表不是最新的

MD *_*ffy 1 python

在Python代码中,我有一些成员变量。我已将构造函数默认args设置为None,以便以后可以设置它们。我还列出了要遍历成员的列表。问题是,当我稍后进行设置时,该列表无法反映更新后的值。如何解决此问题,以便列表始终返回最新值?

class Foo:
    def __init__(self, x=None, y=None, z=None):
        self.x = x
        self.y = y
        self.z = z
        self.list = [self.x, self.y, self.z]


f = Foo(4)
f.x = 1
f.y = 2
f.z = 3

print(f.list)
Run Code Online (Sandbox Code Playgroud)

预期结果是[1,2,3],但我得到了[4,None,None]

Ali*_*Tou 8

list作为属性添加到您的班级。

class Foo:
    def __init__(self, x=None, y=None, z=None):
        self.x = x
        self.y = y
        self.z = z

    @property
    def list(self):
        return [self.x, self.y, self.z]


f = Foo(4)
f.x = 1
f.y = 2
f.z = 3

print(f.list)
Run Code Online (Sandbox Code Playgroud)

哪个输出:

[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)