2010-02-19 77 views
0

。如果我有:检索所有变量的键对象

class A(object): 
    varA = 1 

inst = A() 

那么我将如何检索研究所所有变量的钥匙?我想要的东西像["varA"]

到目前为止,我已经得到这样的:

vars(inst.__class__).keys() #returns ['__dict__', '__weakref__', '__module__', 'varA', '__doc__'] 

我很好,我会忽略双下瓦尔。我的问题是多层次的继承如:

class A(object): 
    varA = 1 

class B(A): 
    varB = 2 

inst = B() 
vars(inst.__class__).keys() #returns ['__module__', '__doc__', 'varB'] 

但我想检索varB和varA。任何想法我会如何去做这件事?

我也试过:

vars(super(B, inst).__class__).keys()+vars(inst.__class__).keys() 

但是这并没有做什么,我的预期。

如果很重要,我使用Python 2.6。

编辑:我其实只是在非常简单的方法来做到这一点跌跌撞撞: dir(inst)

+0

我不知道。我会改变我的例子以符合标准。 – Ponkadoodle 2010-02-21 01:13:37

回答

1

有一个Python模块,叫inspect运行时的自省。也许inspect.getmembers可以帮助你...

+0

是的,这正是我想要的。我过去曾使用过检查,但我忘记了它的能力。 – Ponkadoodle 2010-02-19 23:54:43

相关问题