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

标签 python

在 Python 代码中,我有一些成员变量。我已将构造函数默认参数设置为 None 以便稍后可以设置它们。我还有一个列表来遍历成员。问题是,当我稍后设置它时,列表不会反射(reflect)更新后的值。如何解决这个问题,使列表始终返回最新值?

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)

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

最佳答案

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)

哪些输出:

[1, 2, 3]

关于python成员变量列表不是最新的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55935201/

相关文章:

python - 保存时添加 ManyToManyField 关系,如果对象不存在则创建对象

python - 分割字符串并保留分隔符,且分隔符连续出现

python - 为什么到双向链表前面的递归函数不起作用?

python - 如何将列的标记值解析为 Pandas Dataframe(缺少某些列值)?

c++ - 痛饮 mysql : undefined symbol: mysql_init'

python - 为 ponyorm 的实体定义构造函数导致 TypeError

python - 如何在 matplotlib 中美观地显示通用数量的轴?

python - django无法反转项目级别 View ?

python - 使用 Sphinx 自定义语法高亮

python - 在生产环境中发布基于 python/ruby/script 的 Web 应用程序时的实践