基于这个问题 looping over all member variables of a class in python
关于如何迭代类的属性/非函数。我想循环遍历类变量值并存储在列表中。
class Baz:
a = 'foo'
b = 'bar'
c = 'foobar'
d = 'fubar'
e = 'fubaz'
def __init__(self):
members = [attr for attr in dir(self) if not attr.startswith("__")]
print members
baz = Baz()
将返回['a', 'b', 'c', 'd', 'e']
我想要列表中的类属性值。
答案 0 :(得分:3)
使用getattr
功能
members = [getattr(self, attr) for attr in dir(self) if not attr.startswith("__")]
getattr(self, 'attr')
相当于self.attr
答案 1 :(得分:2)
使用 getattr 方法:
class Baz:
a = 'foo'
b = 'bar'
c = 'foobar'
d = 'fubar'
e = 'fubaz'
def __init__(self):
members = [getattr(self,attr) for attr in dir(self) if not attr.startswith("__")]
print members
baz = Baz()
['foo', 'bar', 'foobar', 'fubar', 'fubaz']