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


相关文章