Python 中的 vars() 函数


vars() 函数属于 Python 标准库提供的内置函数集合。它将关联对象的 __dic__ 属性返回到控制台。

语法

vars(object)

返回值类型

<Dictionary Type>

参数

vars() 函数只接受一个参数。它将一个对象作为其参数,该对象可以是任何模块、类或任何与之关联的 __dict__ 属性的对象。

此参数是可选的。如果函数在没有参数的情况下使用,则会显示包含本地符号表的字典。

涉及的异常

如果传递的参数与属性不匹配,则会引发 TypeError 异常。

范围

当没有传递参数时,Vars() 的作用类似于 locals() 方法。locals() 方法修改并返回当前存在的本地符号表的字典。

工作机制

<类名> 与 __name__ 属性关联;bases 元组使用基类进行逐项列出,并关联 __bases__ 属性,字典是包含类体中定义的当前命名空间,并将其复制到标准字典类型以显示为 __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 函数。

更新于: 2020年6月30日

593 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.