Python 中 dir()和 vars()的区别

原文:https://www . geesforgeks . org/python 中 dir 和 vars 的区别/

由于 Python 以属于相应对象的字典形式存储它们的实例变量, dir()vars() 函数都用于列出 Python 类的实例/对象的属性。虽然有类似的实用程序,但是这些函数有重要的单独用例。 dir()函数: 该函数显示的属性比 vars()函数多,因为它不限于一个实例。它还显示类属性。它还显示其祖先类的属性。 vars()函数: 该函数以字典的形式显示实例的属性。 下表提供了 var()和 dir()之间的一些显著差异:

| vars() | dir() | | --- | --- | | 返回单个类的对象字典 | 返回单个类及其基类的对象字典 | | 当没有传递参数时,它返回与当前本地符号表对应的字典 | 当未传递任何参数时,它返回当前本地范围内的名称列表 | | 如果作为参数的模块、类或类实例对象(或任何其他具有 __dict__ 属性的对象)被传递,它将返回与对象的符号表相对应的字典。 | 当传递参数时,它试图返回对象有效属性列表 | | 由于内置类型的实例没有 __dict__ 属性,因此在内置类型实例中使用时会返回一个错误。 | 它可以与所有内置类型一起使用,不会出错 |

例 1:

Python 3

vars(list).keys()