だから私はクロージャーで遊んでいるPython 3.4.1に小さなコードを持っています
def bam(x):
def paw():
x+=1
print(x)
def bang():
x+=1
print(x)
return paw, bang
もともと私は電話できるかどうかを見たかった
a=bam(56)
a[0]()
a[0]()
a[0]()
a[0]()
a[1]()
そして、最終行がJavaScriptのように56より大きい数値を出力するかどうかを確認します(私は思う)
しかし、代わりに「paw」の「x」をローカルに呼び出したので+=
(そうですか?)、GETしようとするとエラーがスローされますx+=1
File "C:/Users/Nancy/Desktop/delete2.py", line 3, in paw
x+=1
UnboundLocalError: local variable 'x' referenced before assignment
外側のスコープで変数を変更することに対する何らかの規則はありますか?