Python中如何避免局部变量遮蔽全局变量?
时间: 2024-09-06 18:01:00 浏览: 66
在Python中,如果在一个函数内部定义了一个同名的变量,这个新定义的变量会成为局部变量,遮蔽外部全局变量。要避免这种情况,你可以采取以下方法:
1. 明确指定变量为全局变量[^1]:
```python
global_var = "This is a global variable"
def my_function():
global global_var # 使用global关键字声明这是全局变量
local_var = global_var # 这里local_var只是引用了全局变量,不会创建新的变量
print(local_var)
my_function()
print(global_var) # 输出:This is a global variable
```
2. 在函数内部通过`global`关键字引用全局变量[^2]:
```python
global global_var
def function_with_global():
global global_var
global_var = "Updated global" # 此处更新全局变量
global_var = "Original global"
function_with_global()
print(global_var) # 输出:Updated global
```
这样可以确保函数内部的操作不会意外地改变全局变量的值。
阅读全文