vars()函数属于Python标准库提供的内置函数的集合。它将关联对象的__dic__属性返回到控制台。
vars(object)
<Dictionary Type>
vars()函数仅接受一个参数。它以对象作为参数,可以是任何模块,类或具有__dict__属性的任何对象。
该参数实际上是可选的。如果不带参数使用该功能,则会显示包含本地符号表的字典。
如果传递的参数与属性不匹配,则会引发TypeError异常。
locals()
当不传递任何参数时,Vars()的作用类似于方法。该locals()
方法修改并返回当前存在的本地符号表的字典。
<class-name>与__name__属性关联;base元组与基类逐项列出,并将__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 sample: 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__() function returns the representation of the object. # It may contain any valid expression such as tuples, list, dictionary, string, set etc 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函数。