版本
- Python 3.9
前言
- 在 Python 编程中,全局变量和局部变量是非常重要的概念之一。全局变量是在整个程序范围内可见和可用的变量,而局部变量则是在特定作用域内可见和可用的变量。在本文中,我们将深入探讨 Python 中全局变量和局部变量的概念,并通过代码示例进行说明。
全局变量和局部变量
全局变量
- 全局变量是在程序的最外层定义的变量,在整个程序中都可以访问。在 Python 中,我们可以通过在函数外部定义变量来创建全局变量。让我们看一个例子:
def print_global_var():
print("全局变量的值为:", global_var)
# 定义全局变量
global_var = 10
# 调用函数
print_global_var()
- 在这个例子中,global_var 是一个全局变量,它在函数外部定义,并在函数内部被访问。运行以上代码,将会输出:
全局变量的值为: 10
局部变量
- 局部变量是在函数内部定义的变量,只能在函数内部访问。它们的作用域仅限于函数内部,出了函数就无法访问。让我们来看一个示例:
def print_local_var():
# 定义局部变量
local_var = 20
print("局部变量的值为:", local_var)
# 调用函数
print_local_var()
- 在这个示例中,local_var 是一个局部变量,它在函数内部定义,并在函数内部被访问。运行以上代码,将会输出:
局部变量的值为: 20
全局变量与局部变量的关系
- 在 Python 中,如果在函数内部尝试访问一个变量,首先会在当前函数的作用域内查找该变量。如果找不到,Python 将会继续在外层作用域中查找,直到找到为止。因此,函数内部可以访问全局变量。
- 如果在函数内部试图修改全局变量的值,Python 将会创建一个新的局部变量,而不是修改全局变量的值。这是因为 Python 认为在函数内部修改全局变量可能会导致混乱,因此默认情况下会将其视为局部变量。
global_var = 10
def modify_global_var():
global_var = 30
print("修改后的全局变量的值为:", global_var)
# 调用函数
modify_global_var()
print("全局变量的值为:", global_var)
- 在上面的示例中,为了避免造成混乱,Python 默认将 global_var 视为局部变量,因此会报错:
UnboundLocalError: local variable 'global_var' referenced before assignment
。 - 为了明确告诉 Python 我们要修改全局变量的值,我们可以使用 global 关键字。让我们看一个修改后的示例:
global_var = 10
def modify_global_var():
global global_var
global_var = 30
print("修改后的全局变量的值为:", global_var)
# 调用函数
modify_global_var()
print("全局变量的值为:", global_var)
- 在这个示例中,我们使用了 global 关键字来告诉 Python 我们要修改全局变量 global_var 的值。运行以上代码,将会输出:
修改后的全局变量的值为: 40
全局变量的值为: 40
总结
- 在本文中,我们深入探讨了 Python 中的全局变量和局部变量的概念。我们了解了全局变量是在整个程序范围内可见和可用的变量,而局部变量则是在特定作用域内可见和可用的变量。我们还学习了如何在 Python 中定义和访问全局变量和局部变量,并了解了它们之间的关系。
个人简介