Python言語リファレンス(v 3.1、ここを参照-http: //docs.python.org/py3k/reference/executionmodel.html#naming-and-binding)から:
囲んでいるスコープによって参照されている名前のバインドを解除することは違法です。コンパイラはSyntaxErrorを報告します。
しかし、次のコードを実行すると:
a = 3
def x():
global a
del(a)
print(a)
x()
正常に動作します。呼び出しの順序を変更すると、次のようになります。
x()
print(a)
SyntaxErrorではなくNameErrorが発生します。どうやら、私はルールを正しく理解していません。誰かがそれを説明できますか?ありがとう。