例如:
def handu():
global a#利用外邊的a執行函式
a+=10
print('函式內部',a)
a=20
handu()
print('外部函式',a)
結果:
函式內部 30
函式外部 30
開始分析
global關鍵字可以將區域性變數變成乙個全域性變數所以都是30 30
def hanfu():
global a#區域性變數變為全域性變數
a=10
print(a)#name 'a' is not defined
hanfu()
print(a)
結果:
報錯開始分析
a沒有定義所以報錯
例如:
def hsw():
a=9def hs():
nonlocal a
a=98
print('我是內部',a)
hs()
print('我是外部',a)
hsw()
結果:
我是內部 98
我是外部 98
開始分析
#把a=98的值變為修改外層變數(非全域性)所以都是98
def hsw():
a=9nonlocal a
a=999
print(a)
print('-------',a)
hsw()
結果:
報錯開始分析
關鍵字可以修改外層(非全域性變數),他這個**想修改全域性變數,所以報錯
global和nonlocal的用法
1 global關鍵字用來在函式或其他區域性作用域中使用全域性變數。但是如果不修改全域性變數也可以不使用global關鍵字,global適用於函式內部修改全域性變數的值 2 nonlocal關鍵字用來在函式或其他作用域中使用外層 非全域性 變數。nonlocal適用於巢狀函式中內部函式修改外部變數的...
global和nonlocal作用域
python中的變數引用順序為 當前作用域區域性變數 外層作用域變數 當前模組中的全域性變數 python內建變數 global關鍵字的作用就是用來在函式或者其他區域性作用域中使用全域性變數 例如 a 0 這裡報錯原因是因為剛開始在第一行就定義了乙個全域性變數a 而之後我們嘗試修改了這個a的值,此時...
函式中的global和nonlocal
區域性作用域對全域性作用域的變數 此變數只能是不可變的資料型別 只能進行引用,而不能進行改變,只要改變就會報錯,但是有些時候,我們程式中會遇到區域性作用域去改變全域性作用域的一些變數的需求,這怎麼做呢?這就得用到關鍵字global global第乙個功能 在區域性作用域中可以更改全域性作用域的變數。...