在 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()