1. 全局变量与局部变量
在 Python 中,变量的作用域分为全局作用域和局部作用域。全局作用域中定义的变量可以在整个程序中访问,局部作用域中定义的变量只能在其所在的函数或代码块内访问。
全局变量是在函数外部定义的变量,可以在函数内部访问。
局部变量是在函数内部定义的变量,只能在函数内部访问。
下面通过示例代码来演示全局变量和局部变量的区别:
# 全局变量
global_var = 10
def my_function():
# 局部变量
local_var = 20
print(global_var) # 可以访问全局变量
print(local_var) # 可以访问局部变量
my_function()
# 输出结果:
# 10
# 20
在上述示例中,我们定义了一个全局变量 global_var
和一个函数 my_function
。在函数内部,我们可以访问全局变量 global_var
和局部变量 local_var
。
2. 使用 global 关键字
如果我们在函数内部想要修改全局变量的值,可以使用 global
关键字。
global_var = 10
def change_global_var():
global global_var
global_var = 20
print(global_var) # 输出: 10
change_global_var()
print(global_var) # 输出: 20
在上述示例中,我们在函数 change_global_var
中使用了 global
关键字来声明 global_var
为全局变量。然后在函数内部修改了全局变量的值。在函数外部打印 global_var
的值,可以看到它已经被修改为 20。
3. 使用 nonlocal 关键字
除了使用 global
关键字来修改全局变量,我们还可以使用 nonlocal
关键字来修改嵌套函数中的变量。
在 Python 中,我们可以在一个函数内部定义另一个函数。被定义的函数称为内部函数。如果内部函数中引用了外部函数的变量,那么这个变量就被称为非局部变量。非局部变量不能在内部函数中直接修改,需要使用 nonlocal
关键字。
下面通过示例代码来演示使用 nonlocal
关键字:
def outer_function():
outer_var = 10
def inner_function():
nonlocal outer_var
outer_var = 20
inner_function()
print(outer_var) # 输出: 20
outer_function()
在上述示例中,我们定义了一个外部函数 outer_function
,并在内部函数 inner_function
中使用了 nonlocal
关键字来声明 outer_var
为非局部变量。在内部函数内部修改了 outer_var
的值为 20。在外部函数中打印 outer_var
的值,可以看到它已经被修改。
总结
在 Python 中,全局变量可以在整个程序中访问,局部变量只能在其所在的函数或代码块内访问。如果要在函数内部修改全局变量的值,可以使用 global
关键字。如果要在内部函数中修改外部函数的变量,可以使用 nonlocal
关键字。
这些关键字的使用可以帮助我们在函数中灵活地操作变量,使得程序更加模块化和可维护。