vars()
是一个内置函数,用于返回一个对象的 __dict__
属性。它接受一个对象作为参数,如果省略参数,它返回当前局部作用域的字典。
具体而言,vars()
的行为取决于参数的类型:
1. 没有参数:
如果没有提供参数,vars()
返回当前局部作用域的字典。它相当于调用 locals()
函数。
local_vars = vars()
2. 有参数:
如果提供了一个对象作为参数,vars(obj)
返回该对象的 __dict__
属性。如果对象没有 __dict__
属性,它会引发一个 TypeError
。
class Example:
def __init__(self):
self.a = 1
self.b = 2
obj = Example()
obj_vars = vars(obj)
使用 vars()
主要是在需要获取对象的属性字典时。它通常用于调试、动态属性设置等场景,但在一般情况下,直接访问对象的属性更为直观。值得注意的是,并不是所有的对象都有 __dict__
属性,因此在某些情况下使用 vars()
可能会引发异常。