當前位置: 妍妍網 > 碼農

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預定義的。

  • 它們可以在任何其他作用域中存取。