我觉得很难解释,所以这就是我的意思:
>>> class a(object):
a = 'z'
b = 'b'
c = 'c'
all = a,b,c
>>> print a.all
('z', 'b', 'c')
>>> a.a = 'a'
>>> print a.a
a
>>> print a.all
('z', 'b', 'c')
如何让a.all
准确到班上的内容
我希望a.all
为('a','b','c')
我认为这是因为在创建类时,会在那里设置值。 但我想我可能只需要在每次访问它时设置'all'值,我只是不想输入所有变量的名称。这是在一个有20多个变量的类中应用的。
也许有人会知道用函数重置'all'变量的有效方法。
答案 0 :(得分:4)
让all
成为property
:
class A(object):
a = 'z'
b = 'b'
c = 'c'
@property
def all(self):
return (self.a, self.b, self.c)
请注意,您必须创建该类的实例才能使其正常工作:
>>> a = A()
>>> a.all
('z', 'b', 'c')
>>> a.a = 'a'
>>> a.all
('a', 'b', 'c')
答案 1 :(得分:3)
@property
的一个解决方案:
class a(object):
a = 'z'
b = 'b'
c = 'c'
@property
def all(self):
return self.a, self.b, self.c
A = a()
print A.all
a.a = 'a'
print A.all
@property
需要一个实例而不是类。