Python閉包區域性變數問題

2021-09-13 12:49:39 字數 465 閱讀 3539

最近開始學習python,一直覺得python定義變數前沒有命令很難受,果然今天在練習閉包時遇到了這個問題。先看看出問題的**

def createcounter():

n = 0

def counter():

n = n + 1

return n

return counter

這裡會報錯:unboundlocalerror: local variable 'n' referenced before assignment

def createcounter():

n = 0

def counter():

nonlocal n

n = n+1

return n

return counter

這樣子就不會報錯了

js 區域性變數 全域性變數 閉包

什麼是變數?變數的命名規範 1 變數名必須以字母.下標符號 或者 開頭 2 變數名的長度不得超過255個字元 3 變數名中不可以使用空格,並且開頭不得以數字開頭 4 不用使用指令碼語言中保留的關鍵字及保留符號作為變數名 5 變數名是區分大小寫的,var a 1和var a 1 指在程式中只在特定過程...

閉包 全域性變數與區域性變數

報錯 unboundlocalerror local variable t referenced before assignment 在 python 中,如果乙個函式使用了和全域性變數相同的名字且改變了該變數的值,那麼該變數就會變成區域性變數,那麼就會造成在函式中我們沒有進行定義就引用了,所以會報...

js閉包函式 獲取區域性變數時

參考 閉包是能夠讀取其他函式內部變數的函式。閉包就是將函式內部和函式外部連線起來的一座橋梁。函式內部可以直接讀取全域性變數。在函式外部無法讀取函式內的區域性變數。functionf1 f1 alert n 999子函式可以一層一層讀取到父元素的變數,反之不行。假如需要得到函式的區域性變數,正常操作是...