0

pythonのnonlocalキーワードの振る舞いに戸惑っています。

したがって、標準的な例はこの質問def outerfoo():のようになります。変数定義を含むブロックがありoutvar = 0、内部outerfoo()def innerfoo():を含むブロックがあり、内部で行われることによってinの名前空間nonlocal outvarの値を変更できるようにします。outvarouterfoo():innerfoo()

ここまでは順調ですね。ただし、次のコードはエラーで失敗しますSyntaxError

outvar = 0 #not in any function
def foo():
    nonlocal outvar
    outvar += 1
foo()

パーサーが検索していて、見つからない名前空間はoutvar?

4

0 に答える 0