globals()、locals() 和 vars() 之间有什么区别?
在 Python 中,globals()、locals() 和 vars() 是内置函数,用于访问不同类型的变量作用域。这些函数各自有不同的用途和返回值,以下是它们之间的详细区别:
globals()
locals()
vars()
```python x = 10
def func(): print(globals()) # 显示包括 ‘x’ 在内的全局变量
func() ```
运行结果: python {'__name__': '__main__', 'x': 10, ...}
python {'__name__': '__main__', 'x': 10, ...}
```python def func(): a = 5 b = 10 print(locals()) # 显示局部变量 ‘a’ 和 ‘b’
运行结果: python {'a': 5, 'b': 10}
python {'a': 5, 'b': 10}
__dict__
```python class MyClass: def init(self): self.x = 1 self.y = 2
obj = MyClass() print(vars(obj)) # 显示实例属性 {‘x’: 1, ‘y’: 2}
def func(): z = 3 print(vars()) # 显示局部变量 {‘z’: 3}
vars(): 可以显示模块、类、实例的 __dict__ 属性,或局部变量(如果在函数内使用)。
使用上下文:
vars(): 用于访问或修改对象的属性,或查看局部变量(如果不传参数)。
返回值:
理解这些函数有助于在调试、反射和动态交互中更好地处理 Python 中的变量和对象。