私は Python 開発に比較的慣れていないので、言語のドキュメントを読んでいると、次の行に出くわしました。
囲んでいるスコープによって参照されている名前をアンバインドすることは違法です。コンパイラは SyntaxError を報告します。
そのため、学習演習で、対話型シェルでこのエラーを作成しようとしていますが、その方法を見つけることができませんでした。私はPython v2.7.3を使用しているので、次のような非ローカルキーワードを使用しています
def outer():
a=5
def inner():
nonlocal a
print(a)
del a
はオプションではなく、nonlocalを使用しないと、Python がdel a
関数inner
内で参照すると、バインドされていないローカル変数として解釈し、UnboundLocalError
例外をスローします。
明らかに、グローバル変数に関してこの規則には例外があります。そのため、囲んでいるスコープによって参照されている変数名を「違法に」バインド解除している状況をどのように作成できますか?