Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ฟังก์ชัน vars() ใน Python


ฟังก์ชัน vars() 属于 Python standard library 提供的内置函数集合 它返回关联对象的 __dict__ 属性到控制台

语法

vars(object)

返回类型

<Dictionary Type>

参数

vars() 函数只接受一个参数 它接受一个对象作为参数 可以是任何模块、类或任何具有 __dict__ 属性的对象

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

涉及的异常

如果传递的参数不匹配属性 它会引发 TypeError 异常

范围

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

工作机制

<class-name> 与 __name__ 属性关联; bases 元组与基类关联并关联 __bases__ 属性 & 字典是当前命名空间 包含类体中包含的定义 被复制到标准字典类型以显示为 __dict__ 属性

让我们讨论一些示例以便我们能掌握 vars() 函数的概念

示例 1

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}

示例 2

class sample:
    company = "Tutorial's Point"
    Number = 4
    Topic = "Python 3.x."

obj = vars(sample)
print(obj)

输出

{'__doc__': None, '__weakref__': , 'Topic': 'Python 3.x.', 'company': "Tutorial's Point", '__module__': '__main__', 'Number': 4, '__dict__': }

示例 3

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__ 属性的使用,构造函数中设置了默认值

第二个示例代码描述了与类本身关联的 __dict__ 属性的使用,其中 __doc__ 属性为空

第三个示例代码描述了与类内部用户定义函数关联的 __dict__ 属性的使用,其中包含局部作用域中的变量

结论

在本文中 我们学习了如何在 Python 3.x (或更早版本) 中在各种情况下实现 vars 函数 您可以在需要时实现相同的算法来使用 vars 函数