在 Python 中,vars()函数返回一个包含对象属性和值的字典;

函数语法

vars([object])

参数object是可选的,如果指定了该参数,则返回一个包含该对象的属性和属性值的字典,实际就是返回了对象的__dict__属性;如果没有指定该参数,则返回当前作用域内的局部变量和其值的字典。

var() 函数示例

class MyClass:
    def __init__(self):
        self.x = 10
        self.y = 20

cls = MyClass()

print(vars(cls))    # {'x': 10, 'y': 20}
print(cls.__dict__) # {'x': 10, 'y': 20}

实际上就是返回了对象的__dict__属性:

class MyClass:
    # 自定义 __dict__
    __dict__ = {'a','b'}

    def __init__(self):
        self.x = 10
        self.y = 20

cls = MyClass()

print(vars(cls))    # {'a', 'b'}

不使用参数,返回当前作用域的变量:

def func():
    x = 123
    print(vars()) # {'x': 123}

a = 1
b = 2

print(vars()) # {'__name__': ... , 'a': 1, 'b': 2}
func()