Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何知道类中定义了哪些变量_Python - Fatal编程技术网

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

Python 如何知道类中定义了哪些变量,python,Python,在没有导入类的情况下,如何获取在类中定义哪些变量的列表 vars(obj)返回类中的所有vars,不包括不需要的bliltin vars,如\uuuuu doc\uuuuu、\uuuu文件\uuuuuuuuuu、\uu包\uuuuuuuuu、os、pdb,等等。查看文档,我想知道vars是否是您想要使用的 在没有参数的情况下,vars()的行为类似于locals()。请注意,局部变量字典仅对读取有用,因为对局部变量字典的更新将被忽略 ,这似乎是你想要的 如果我错了,请告诉我您有几种方法可以获取类

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


vars(obj)
返回类中的所有vars,不包括不需要的bliltin vars,如
\uuuuu doc\uuuuu
\uuuu文件\uuuuuuuuuu
\uu包\uuuuuuuuu
os
pdb
,等等。查看文档,我想知道vars是否是您想要使用的

在没有参数的情况下,vars()的行为类似于locals()。请注意,局部变量字典仅对读取有用,因为对局部变量字典的更新将被忽略

,这似乎是你想要的


如果我错了,请告诉我

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


>变量(foo)
{uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,
“\uuuu init\uuuuuuu”:,
“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,
“baz”:51}
>>>{k:v代表k,v在变量(foo)中。如果k[:2]!=“\uuuuuuu”和k[-2:]!=“\uuuuuuuuuuuuuuuuuu}
{'baz':51}
>>>obj=foo()
>>>vars(obj)
{'bar':42}

你能举个小例子吗?你是指类中定义的变量还是模块中定义的变量?对于一个模块,我希望在
vars()
中看到像
\uuuuu file\uuuu
这样的变量,但对于一个类,则没有。另外,类导入模块是相当不寻常的,但模块这样做是很常见的。(在Python中,与Java不同,您通常不会将每个类都放在自己的模块中。)是的,我混淆了模块和类。
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}