在python中循环使用类变量的属性

时间:2014-08-27 19:09:01

标签: python class loops variables

基于这个问题 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']

我想要列表中的类属性值。

2 个答案:

答案 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']