vars() 是一个内置函数,用于返回对象的属性和属性值的字典形式。
vars() 函数可以接受一个对象作为参数,然后返回该对象的属性和属性值组成的字典。如果没有传递参数给 vars() 函数,则默认返回当前作用域的局部变量的字典。
以下是 vars() 函数的用法和行为:
无参数情况下的使用:
当在全局作用域内调用 vars() 函数时,它返回当前全局作用域中的变量和值的字典。
当在函数内部调用 vars() 函数时,它返回当前函数的局部变量和值的字典。
有参数情况下的使用:
如果传递一个对象作为参数给 vars() 函数,它将返回该对象的属性和属性值的字典。
对于自定义类的实例对象,vars() 函数返回的字典将包含实例的属性和属性值。
对于内置类的实例对象(如列表、字符串等),vars() 函数返回的字典通常只包含内置属性和方法,并不包含实例化时添加的自定义属性。
总结来说,vars() 函数用于获取对象的属性和属性值,并以字典的形式返回。它在调试、动态查看对象的属性和值以及进行反射等场景下很有用。
实例
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person("Alice", 25)
attributes = vars(person)
print(attributes) # {'name': 'Alice', 'age': 25}
def my_function():
x = 10
y = 20
local_vars = vars()
print(local_vars) # {'x': 10, 'y': 20}
my_function()
# my_module.py
x = 10
y = 20
module_vars = vars()
print(module_vars) # {'__name__': '__main__', '__doc__': None, '__package__': None, 'x': 10, 'y': 20}