一文读懂 Python 全局变量和局部变量

2024-02-26 20:56:50 浏览数 (3)

版本

  • Python 3.9

前言

  • 在 Python 编程中,全局变量和局部变量是非常重要的概念之一。全局变量是在整个程序范围内可见和可用的变量,而局部变量则是在特定作用域内可见和可用的变量。在本文中,我们将深入探讨 Python 中全局变量和局部变量的概念,并通过代码示例进行说明。

全局变量和局部变量

全局变量

  • 全局变量是在程序的最外层定义的变量,在整个程序中都可以访问。在 Python 中,我们可以通过在函数外部定义变量来创建全局变量。让我们看一个例子:
代码语言:python代码运行次数:0复制
def print_global_var():
    print("全局变量的值为:", global_var)


# 定义全局变量
global_var = 10
# 调用函数
print_global_var()
  • 在这个例子中,global_var 是一个全局变量,它在函数外部定义,并在函数内部被访问。运行以上代码,将会输出:
代码语言:txt复制
全局变量的值为: 10

局部变量

  • 局部变量是在函数内部定义的变量,只能在函数内部访问。它们的作用域仅限于函数内部,出了函数就无法访问。让我们来看一个示例:
代码语言:python代码运行次数:0复制
def print_local_var():
    # 定义局部变量
    local_var = 20
    print("局部变量的值为:", local_var)

# 调用函数
print_local_var()
  • 在这个示例中,local_var 是一个局部变量,它在函数内部定义,并在函数内部被访问。运行以上代码,将会输出:
代码语言:txt复制
局部变量的值为: 20

全局变量与局部变量的关系

  • 在 Python 中,如果在函数内部尝试访问一个变量,首先会在当前函数的作用域内查找该变量。如果找不到,Python 将会继续在外层作用域中查找,直到找到为止。因此,函数内部可以访问全局变量。
  • 如果在函数内部试图修改全局变量的值,Python 将会创建一个新的局部变量,而不是修改全局变量的值。这是因为 Python 认为在函数内部修改全局变量可能会导致混乱,因此默认情况下会将其视为局部变量。
代码语言:python代码运行次数:2复制
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 关键字。让我们看一个修改后的示例:
代码语言:python代码运行次数:0复制
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 的值。运行以上代码,将会输出:
代码语言:txt复制
修改后的全局变量的值为: 40
全局变量的值为: 40

总结

  • 在本文中,我们深入探讨了 Python 中的全局变量和局部变量的概念。我们了解了全局变量是在整个程序范围内可见和可用的变量,而局部变量则是在特定作用域内可见和可用的变量。我们还学习了如何在 Python 中定义和访问全局变量和局部变量,并了解了它们之间的关系。

个人简介

0 人点赞