Python 中的 vars() 函数
pythonprogrammingserver side programming
vars() 函数属于 Python 标准库提供的内置函数集合。它将关联对象的 __dic__ 属性返回到控制台。
语法
vars(object)
返回类型
<字典类型>
参数
vars() 函数仅接受一个参数。它将一个对象作为其参数,该对象可以是任何模块、类或任何具有与其关联的 __dict__ 属性的对象。
此参数本质上是可选的。如果函数使用时不带参数,则会显示包含本地符号表的字典。
涉及的异常
如果传递的参数与属性不匹配,则会引发 TypeError 异常。
范围
当没有传递参数时,Vars() 的作用类似于 locals() 方法。locals() 方法修改并返回当前存在的本地符号表的字典。
工作机制
<class−name> 与 __name__ 属性关联;bases 元组与基类一起列出,并与 __bases__ 属性关联 & dictionary 是当前命名空间,包含类主体中包含的定义,并被复制到标准字典类型以显示为 __dict__ 属性。
让我们讨论一些例子,以便我们能够掌握 vars() 函数的概念
示例
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}
示例
class 示例: company = "Tutorial's Point " Number = 4 Topic = "Python 3.x." obj = vars(sample) print(obj)
输出
{'__doc__': None, '__weakref__': <attribute '__weakref__' of 'sample' objects>, 'Topic': 'Python 3.x.', 'company': "Tutorial's Point ", '__module__': '__main__', 'Number': 4, '__dict__': <attribute '__dict__' of 'sample' objects>}
示例
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__ 属性的使用,其中构造函数方法中设置了默认值。4
第二个示例代码描述了与类本身关联的 __dict__ 属性的使用,其中 __doc__ 属性为空。
第三个示例代码描述了与类内部的用户定义函数关联的 __dict__ 属性的使用,其中变量在本地范围内。
结论
在本文中,我们学习了如何在 Python 3.x 中在各种情况下实现 vars 函数。或更早版本。您可以实现相同的算法以在需要时使用 vars 函数。