【发布时间】:2010-11-26 17:58:40
【问题描述】:
如何获得可迭代类中所有变量的列表?有点像 locals(),但是对于一个类
class Example(object):
bool143 = True
bool2 = True
blah = False
foo = True
foobar2000 = False
def as_list(self)
ret = []
for field in XXX:
if getattr(self, field):
ret.append(field)
return ",".join(ret)
这应该返回
>>> e = Example()
>>> e.as_list()
bool143, bool2, foo
【问题讨论】:
-
为什么不能使用
for field in [ self.bool143, self.bool2, self.blah, self.foo, self.foobar2000 ]?不知道类的实例变量怎么会发生? -
S.Lott:反正我就是这么做的。在我的真实代码中,我有 40 个变量,我认为不必手动制作迭代列表会更好,更 DRY。
-
ClassName.__dict__["__doc__"]这将过滤掉函数、内置变量等,并为您提供所需的字段!
标签: python