Python 中的函數如果想要在函數內部訪問外部函數定義的變量,就需要使用到非局部變量。在 Python 中,我們可以使用 nonlocal 關鍵字來指定一個變量為非局部變量。
def outer(): x = 10 def inner(): nonlocal x x += 1 print(x) inner() print(x) outer() 輸出結果: 11 11
在上面的例子中,我們在 inner 函數內部訪問了 outer 函數中定義的變量 x。如果沒有使用 nonlocal 關鍵字,x 會被認為是一個局部變量,這樣修改后也不會對外部產生影響。
需要注意的是,如果外部沒有定義該變量,使用 nonlocal 就會報錯,因為 nonlocal 只能用于已經定義的變量。
def outer(): def inner(): nonlocal x x += 1 print(x) inner() print(x) outer() 輸出結果: UnboundLocalError: local variable 'x' referenced before assignment
nonlocal 的使用不僅可以修改已有的變量,也可以用于創建新的非局部變量。
def outer(): def inner(): nonlocal x x = 20 print(x) inner() print(x) outer() 輸出結果: 20 20
在上面的例子中,我們在 inner 函數內部創建了一個新的變量 x,并賦值為 20。這個 x 在函數外部同樣可以訪問。
總結起來,nonlocal 關鍵字可以方便我們在函數內部訪問外部函數定義的變量,使得我們可以靈活的編寫代碼,增強了 Python 語言在函數編程方面的能力。
上一篇vue idea 運行
下一篇HTML實現代碼雨視頻