Из Python Language Reference (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)
Я получаю NameError, а не SyntaxError. По-видимому, я неправильно понимаю правило. Может ли кто-нибудь объяснить это? Благодарю.
Можете ли вы связаться с тем, куда вы указываете? На этой странице должно появиться сообщение NameError: http://docs.python.org/py3k/reference/simple_stmts.html#the-del-statement – carl
@carl: Мне потребовалось несколько, чтобы найти его; несколько абзацев в http://docs.python.org/py3k/reference/executionmodel.html#naming-and-binding. –
Добавлена ссылка на соответствующий раздел справочника по языку. –