Python中的vars()函数用法及示例

在Python中,vars() 是一个内置函数,用于返回对象的属性和属性值的字典形式。

具体而言,vars() 函数可以接受一个对象作为参数,然后返回该对象的属性和属性值组成的字典。如果没有传递参数给 vars() 函数,则默认返回当前作用域的局部变量的字典。

以下是 vars() 函数的用法和行为:

  1. 无参数情况下的使用:

    • 当在全局作用域内调用 vars() 函数时,它返回当前全局作用域中的变量和值的字典。
    • 当在函数内部调用 vars() 函数时,它返回当前函数的局部变量和值的字典。
  2. 有参数情况下的使用:

    • 如果传递一个对象作为参数给 vars() 函数,它将返回该对象的属性和属性值的字典。
    • 对于自定义类的实例对象,vars() 函数返回的字典将包含实例的属性和属性值。
    • 对于内置类的实例对象(如列表、字符串等),vars() 函数返回的字典通常只包含内置属性和方法,并不包含实例化时添加的自定义属性。

总结来说,vars() 函数用于获取对象的属性和属性值,并以字典的形式返回。它在调试、动态查看对象的属性和值以及进行反射等场景下很有用。

例子:

以下是一些示例,展示了在 Python 中使用 `vars()` 函数的几种常见情况:

1. 获取对象的属性和属性值:

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}


2. 获取当前作用域的局部变量:

def my_function():
    x = 10
    y = 20
    local_vars = vars()
    print(local_vars)  # {'x': 10, 'y': 20}

my_function()


3. 获取全局作用域的变量:

global_var = 100

def print_global_vars():
    global_vars = vars()
    print(global_vars)  # {'global_var': 100, ... (其他全局变量)}

print_global_vars()


4. 获取模块的全局变量:

# my_module.py
x = 10
y = 20

module_vars = vars()
print(module_vars)  # {'__name__': '__main__', '__doc__': None, '__package__': None, 'x': 10, 'y': 20}

总之,`vars()` 函数在不同的情况下可用于获取对象的属性和属性值,局部变量,全局变量以及模块的全局变量,并将它们以字典的形式返回。

你可能感兴趣的:(python)