ฟังก์ชัน vars() 属于 Python standard library 提供的内置函数集合 它返回关联对象的 __dict__ 属性到控制台
语法
vars(object)
返回类型
<Dictionary Type>
参数
vars() 函数只接受一个参数 它接受一个对象作为参数 可以是任何模块、类或任何具有 __dict__ 属性的对象
此参数是可选的 如果函数在没有参数的情况下使用 将显示包含本地符号表的字典
涉及的异常
如果传递的参数不匹配属性 它会引发 TypeError 异常
范围
当没有传递参数时 Vars() 的作用类似于 locals() 方法 locals() 方法修改并返回当前存在的本地符号表的字典
工作机制
<class-name> 与 __name__ 属性关联; bases 元组与基类关联并关联 __bases__ 属性 & 字典是当前命名空间 包含类体中包含的定义 被复制到标准字典类型以显示为 __dict__ 属性
让我们讨论一些示例以便我们能掌握 vars() 函数的概念
示例 1
class test:
def __init__(self, integer_1=555, integer_2=787):
self.integer_1 = integer_1
self.integer_2 = integer_2
obj_test = test()
print(vars(obj_test))
输出
{'integer_1': 555, 'integer_2': 787}
示例 2
class sample:
company = "Tutorial's Point"
Number = 4
Topic = "Python 3.x."
obj = vars(sample)
print(obj)
输出
{'__doc__': None, '__weakref__': , 'Topic': 'Python 3.x.', 'company': "Tutorial's Point", '__module__': '__main__', 'Number': 4, '__dict__': }
示例 3
class test():
# Python __repr__() 函数返回对象的表示
# 它可能包含任何有效表达式 如元组、列表、字典、字符串、集合等
def __repr__(self):
return "Tutorial's point"
def localvariables(self):
number = 4
return locals()
if __name__ == "__main__":
obj = test()
print(obj.localvariables())
输出
{'self': "Tutorial's point, 'number': 4}
解释
第一个示例代码描述了与类的构造函数关联的 __dict__ 属性的使用,构造函数中设置了默认值
第二个示例代码描述了与类本身关联的 __dict__ 属性的使用,其中 __doc__ 属性为空
第三个示例代码描述了与类内部用户定义函数关联的 __dict__ 属性的使用,其中包含局部作用域中的变量
结论
在本文中 我们学习了如何在 Python 3.x (或更早版本) 中在各种情况下实现 vars 函数 您可以在需要时实现相同的算法来使用 vars 函数