当前位置: 欣欣网 > 码农

Python变量作用域详解

2024-07-06码农

在Python中,变量的作用域(Scope)决定了变量的可见性和生命周期。Python有三种基本的作用域:局部作用域(Local)、嵌套作用域(Enclosing)和全局作用域(Global)。此外,还有一个特殊的内置作用域(Built-in)。理解这些作用域对于编写清晰、可维护的代码至关重要。

局部作用域(Local Scope)

defgreet(name):
greeting = "Hello, " + name + "!"
print(greeting) # greeting 在这里可见
greet("Alice")
# greet() 调用后,greeting 在这里不可见

「特点」

  • 局部变量只在函数内部有效。

  • 函数执行完毕后,局部变量会被销毁。

  • 嵌套作用域(Enclosing Scope)

    defouter():
    x = "local to outer"
    definner():
    print(x) # inner 可以访问 x
    inner()
    outer()

    「特点」

  • 内部函数可以访问外部函数的局部变量。

  • 外部函数不能访问内部函数的局部变量。

  • 全局作用域(Global Scope)

    x = "global"
    deftest():
    print(x) # 可以访问全局变量 x
    test()

    「特点」

  • 全局变量在整个程序中都可见。

  • 可以在函数内部修改全局变量,但需要使用 global 关键字。

  • 内置作用域(Built-in Scope)

    print("Hello, World!") # 使用内置函数 print

    「特点」

  • 内置作用域中的变量和函数是Python预定义的。

  • 它们可以在任何其他作用域中访问。