如何知道在类中定义哪些变量

时间:2012-05-26 14:07:58

标签: python

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

vars(obj)会返回班级中的所有变量,不包括不需要的bliltin变量,例如__doc____file____name____package__,{{1} },os

2 个答案:

答案 0 :(得分: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}

答案 1 :(得分:0)

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

  

没有参数,vars()就像locals()一样。请注意,locals词典仅对读取有用,因为忽略了对locals词典的更新。

I see this question on SO,看起来就像你想要的那样。

如果我错了,请告诉我