在 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/