Python中变量的作用域、上下文与生命周期

在 Python 中,变量的作用域和上下文由变量作用域规则决定。下面是 Python 中主要的变量类型及其作用域:

1.局部变量:

  • 作用域:局部变量在函数或代码块中声明。
  • 上下文:它们只能在声明它们的代码块中访问。
  • 生命周期:只要函数或代码块在执行,变量就会存在,一旦代码块退出,变量就会被垃圾回收。

def my_function():
    local_var = 10  # local variable
    # ...

# 函数外无法访问 local_var

2.全局变量:

  • 作用域:全局变量在模块级别声明,不属于任何函数或类。
  • 上下文:可在整个模块中访问。
  • 生命周期:全局变量的生命周期与模块的生命周期相关联。

global_var = 20  # global variable

def my_function():
    # global_var 可在函数访问
    print(global_var)

# global_var 可在函数之外访问

3.非本地变量:

  • 作用域:非局部变量用于嵌套函数内部,指向最邻近的外层作用域中的非全局变量。
  • 上下文:在声明非局部变量的嵌套函数和任何内部函数中都可以访问它们。
  • 生命周期:寿命与声明变量的作用域相关。

def outer_function():
    outer_var = 30  # nonlocal variable

    def inner_function():
        nonlocal outer_var
        # outer_var 可以访问,并可在此处修改

    # 这里也可以访问 outer_var


4.内置变量:

  • 作用域:内置变量是 Python 语言的一部分,总是可用的。
  • 上下文:在整个程序中都可以访问它们。
  • 生命周期:只要 Python 解释器在运行,内置变量就一直存在。

print(len("hello"))  # len is 内置函数功能


了解 Python 中变量的作用域对于编写清晰、无错误的代码非常重要。

  • 局部变量有助于封装函数中的逻辑,
  • 而全局变量则为整个模块提供了更广泛的范围。
  • 非局部变量可以实现嵌套函数之间的通信。