''' nonlocal關鍵字用來在函數或其他作用域中使用外層(非全局)變量。 ''' def work(): x = 0 def new_work(): nonlocal x x=x+3 return x return new_work f=work() print(f()) print(f()) print(f())
打印結果
3
6
9
''' 使用global 實現 ''' a =0 def new_work(): global a a=a+3 return a print(new_work()) print(new_work()) print(new_work())
打印結果
3
6
9
''' 閉包= 函數+環境變量 ''' def dosometing(): a =25 def add(x): d=a+x return d return add a = 10 f=dosometing() print(f(5)) print(f(5)) print(f(5))
打印結果
30
30
30
''' 閉包= 函數+環境變量 nonlocal關鍵字用來在函數或其他作用域中使用外層(非全局)變量。 ''' def dosometing(): a =25 def add(x): nonlocal a a=a+x return a return add a = 10 f=dosometing() print(f(5)) print(f(5)) print(f(5))
打印結果
30
35
40