2014-08-27 4 views
-1

Опираясь на этот вопрос looping over all member variables of a class in pythonLooping над значениями переменной класса в питоне

относительно того, как перебрать Переменные класса. Я хочу перебрать значения переменной класса и сохранить в списке.

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

Использование 'getattr' внутри понимания. –

ответ

2

С помощью функции getattr

members = [getattr(self, attr) for attr in dir(self) if not attr.startswith("__")] 

getattr(self, 'attr') является эквивалентом self.attr

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'] 
Смежные вопросы