這篇文章帶給大家的內容是關於Python3中nonlocal和global的用法及區別介紹(附範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
關鍵字nonlocal
在Python 2.x中,閉包只能讀外部函數的變量,而不能改寫它。為了解決這個問題,Python 3.x引入了nonlocal關鍵字,在閉包內用nonlocal宣告變量,就可以讓解釋器在外層函數中尋找變數名稱。
注意:關鍵字nonlocal:是python3.X中出現的,所以在python2.x中無法直接使用.
關鍵字global
Python裡只有2種作用域:全域作用域和局部作用域。全域作用域是指目前程式碼所在模組的作用域,局部作用域是指目前函數或方法所在的作用域。局部作用域裡的程式碼可以讀取外部作用域(包括全域作用域)裡的變量,但不能更改它。如果想更改它,這裡就要使用global關鍵字了
實例
關鍵字nonlocal的作用與關鍵字global類似,使用nonlocal關鍵字可以在一個嵌套的函數中修改嵌套作用域中的變數。
看兩個範例
實例1
name = 'pythontab' def func() global name name = 'pythontab.com' func() print(name)
結果:
pythontab.com
實例2
def func(): name = 'pythontab' def foo(): nonlocal name name = 'pythontab.com' foo() print(name) func()
結果:
##
pythontab.com
以上是Python3中nonlocal和global的用法及區別介紹(附範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!