2

如何在没有导入类的情况下获取在类中定义了哪些变量的列表?

vars(obj)返回类中的所有变量,不包括不需要的 bliltin 变量,如__doc__, __file__, __name__, __package__, os,pdb等。

4

2 回答 2

1

您有几种方法可以获取class变量或实例变量。'__builtin__'利用强制使用双下划线字符 ( )包围的内置函数的编码约定:

class foo:
    baz = 51
    def __init__(self):
        self.bar = 42

>>> vars(foo)
{'__doc__': None,
 '__init__': <function __init__ at 0x02A35B70>,
 '__module__': '__main__',
 'baz': 51}
>>> {k:v for k,v in vars(foo).items() if k[:2]!="__" and k[-2:]!="__"}
{'baz': 51}
>>> obj = foo()
>>> vars(obj)
{'bar': 42}
于 2012-05-26T14:21:22.840 回答
0

查看文档,我想知道 vars 是否是您要使用的

如果没有参数,vars() 的行为就像 locals()。请注意,本地字典仅对读取有用,因为本地字典的更新被忽略。

我在 SO 上看到了这个问题,这似乎是您想要的。

让我知道我是否错了

于 2012-05-26T14:17:25.320 回答