python 函数内部修改外部变量的方法( 二 )


```
x = 0
def add_one():
x = 1 # 这里定义了一个和全局变量 x 相同的变量
x += 1
add_one()
print(x) # 输出 0
```
在这个例子中,我们定义了一个全局变量 x,并将它初始化为 0 。然后,我们定义了一个函数 add_one,在函数内部定义了一个和 x 相同的变量,并将它加上 1 。最后,我们调用了这个函数,并输出了 x 。运行这个程序,我们会发现输出结果为 0,而不是我们预期的 1 。这是因为在函数内部,x 变量被重新定义为 1,而外部的 x 变量没有被修改 。
为了避免这种情况的发生,我们应该尽量避免在函数内部使用和外部变量相同的变量名 。如果确实需要使用相同的变量名,可以使用 global 或 nonlocal 关键字来进行声明,以明确变量的作用域 。

推荐阅读