Python中的vars()函数

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函数。