python内置函数 V
python内置函数 V
Python 解释器内置了很多函数和类型,任何时候都能使用。
V
名称 | 描述 |
---|---|
vars | 返回当前局部符号表的字典。 |
vars()
vars(object)
返回模块、类、实例或任何其它具有 __dict__
属性的对象的 __dict__
属性。
模块和实例这样的对象具有可更新的 __dict__
属性;但是,其它对象的 __dict__
属性可能会设为限制写入(例如,类会使用 types.MappingProxyType
来防止直接更新字典)。
不带参数时,vars()
的行为类似 locals()
。 请注意,locals 字典仅对于读取起作用,因为对 locals 字典的更新会被忽略。
如果指定了一个对象但它没有 __dict__
属性(例如,当它所属的类定义了 __slots__
属性时)则会引发 TypeError
异常。****
# 在全局作用域中
x = 10
y = 20 # vars() 返回全局变量的字典
global_vars = vars()
print(global_vars) # 输出包含 x 和 y 等全局变量的字典 def my_function(): local_x = 5 local_y = 15 # vars() 在函数内部返回局部变量的字典 local_vars = vars() print(local_vars) # 输出包含 local_x 和 local_y 等局部变量的字典 my_function() # 在全局作用域中再次调用 vars()
print(vars()) # 仍然输出全局变量的字典
vars()
在函数内部返回的是局部变量的字典,这包括函数参数和函数内部定义的变量。如果你在函数内部修改了通过 vars()
获取的字典,实际上你就是在修改这些局部变量的值。
class MyClass: def __init__(self): self.attr = "value" def print_vars(self): instance_vars = vars(self) print(instance_vars) # 输出包含 attr 的实例属性字典 obj = MyClass()
obj.print_vars() # 输出: {'attr': 'value'}
vars()
主要用于获取当前作用域(全局或函数局部)的变量字典,而 locals()
主要用于获取当前执行的代码块的局部变量字典。
参考:内置函数 — Python 3.12.2 文档