【问题标题】:retrieving the keys of all variables on an object检索对象上所有变量的键
【发布时间】:2010-02-19 23:45:31
【问题描述】:

如果我有:

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)

【问题讨论】:

  • 我不知道。我将更改我的示例以符合标准。

标签: python class multiple-inheritance


【解决方案1】:

有一个名为inspect 的python 模块用于运行时内省。或许inspect.getmembers可以帮到你……

【讨论】:

  • 是的,这正是我想要的。我以前用过inspect,但我忘记了它的功能。
猜你喜欢
  • 2018-08-18
  • 1970-01-01
  • 2021-01-02
  • 1970-01-01
  • 1970-01-01
  • 2017-04-05
  • 2018-09-29
  • 1970-01-01
  • 2019-02-16
相关资源
最近更新 更多