python global全局变量失效
时间: 2023-06-29 11:18:26 浏览: 271
Python全局变量与global关键字常见错误解决方案
在 Python 中,如果你想在函数内部修改全局变量的值,需要在函数中使用 `global` 关键字声明该变量为全局变量。如果你在函数内部修改了未声明为全局变量的变量,那么 Python 会默认这个变量为局部变量。
下面是一个例子,演示了在函数内部修改未声明为全局变量的变量的情况:
```python
a = 10
def test_global():
a += 1 # 这里会抛出 UnboundLocalError 异常
test_global()
print(a)
```
在这个例子中,我们没有使用 `global` 关键字声明变量 `a` 为全局变量,而是直接在函数内部对其进行了修改。这时候 Python 会将 `a` 视为局部变量,但是在函数内部并没有定义 `a` 这个局部变量,因此会抛出 `UnboundLocalError` 异常。
如果你想在函数内部修改全局变量,需要使用 `global` 关键字声明该变量为全局变量。下面是修改后的代码:
```python
a = 10
def test_global():
global a
a += 1
test_global()
print(a)
```
在这个例子中,我们使用 `global` 关键字声明变量 `a` 为全局变量,然后在函数内部对其进行了修改。这时候 `a` 的值会被成功修改,并且输出结果为 `11`。
阅读全文