如何在没有导入类的情况下获取类中定义了哪些变量的列表?
vars(obj)
会返回班级中的所有变量,不包括不需要的bliltin变量,例如__doc__
,__file__
,__name__
,__package__
,{{1} },os
等
答案 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,看起来就像你想要的那样。
如果我错了,请告诉我