检索对象上所有变量的键

时间:2010-02-19 23:45:31

标签: python class multiple-inheritance

如果我有:

class A(object):
    varA = 1

inst = A()

然后我如何检索inst上所有变量的键?我想要["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)

1 个答案:

答案 0 :(得分:1)

有一个python模块,名为inspect,用于运行时内省。也许inspect.getmembers可以帮助你...