Z Python Language Reference (v 3.1, zobacz tutaj - http://docs.python.org/py3k/reference/executionmodel.html#naming-and-binding):Niezobowiązujące nazwa odwołuje zamykającego zakresu
jest nielegalne rozpiąć nazwy odwołuje się zakresem zamykającego; kompilator zgłosi błąd SyntaxError.
Ale kiedy uruchomić następujący kod:
a = 3
def x():
global a
del(a)
print(a)
x()
działa dobrze; i kiedy zmieniam kolejność wywołań:
x()
print(a)
Otrzymuję NameError, a nie SyntaxError. Najwyraźniej nie rozumiem poprawnie reguły. Czy ktoś może to wyjaśnić? Dzięki.
Czy możesz umieścić link do miejsca, w którym podajesz ofertę? Ta strona mówi, że należy wywołać NameError: http://docs.python.org/py3k/reference/simple_stmts.html#the-del-statement – carl
@ carl: Przywieźć mi kilka osób, aby go znaleźć; kilka akapitów do http://docs.python.org/py3k/reference/executionmodel.html#naming-and-binding. –
Dodano łącze do odpowiedniej sekcji w odnośniku do języka. –