2017-03-02 292 views
0

我正在生成类变量列表,我需要打印这些变量的值。如何从python列表中获取变量名称的值,例如

class MYClass(object): 

    a = '1' 
    b = '20' 
    c = 'hello' 

    def as_list(self): 
     return [attr for attr in dir(MYClass()) if not callable(attr) and not attr.startswith("__") and not attr == 'as_list'] 


c = MYClass() 
print c.as_list() 

上面的代码将导致[ 'A', 'B', 'C'],但我需要的值作为[ '1', '20', '你好']

+2

不是'dir(self)'而不是'dir(MYClass())'更合适吗? – Leon

+0

其实这是静态方法,所以自己不能使用,粘贴在这里我对代码示例做了一些小的修改 – santosh

回答

2

我我不确定你为什么这样做,但是不应该从你的列表理解中返回attr,你应该返回getattr(self, attr)