如何在没有导入类的情况下获取在类中定义了哪些变量的列表?
vars(obj)
返回类中的所有变量,不包括不需要的 bliltin 变量,如__doc__
, __file__
, __name__
, __package__
, os
,pdb
等。
如何在没有导入类的情况下获取在类中定义了哪些变量的列表?
vars(obj)
返回类中的所有变量,不包括不需要的 bliltin 变量,如__doc__
, __file__
, __name__
, __package__
, os
,pdb
等。
您有几种方法可以获取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}
查看文档,我想知道 vars 是否是您要使用的
如果没有参数,vars() 的行为就像 locals()。请注意,本地字典仅对读取有用,因为本地字典的更新被忽略。
我在 SO 上看到了这个问题,这似乎是您想要的。
让我知道我是否错了