Dal Python di riferimento del linguaggio (v 3.1, vedi qui - http://docs.python.org/py3k/reference/executionmodel.html#naming-and-binding):Nibbana un nome a cui fa riferimento un ambito di inclusione
È illegale separare un nome a cui fa riferimento un campo di applicazione che racchiude; il compilatore segnalerà un SyntaxError.
Ma quando ho eseguito il seguente codice:
a = 3
def x():
global a
del(a)
print(a)
x()
funziona benissimo; e quando cambio l'ordine delle chiamate:
x()
print(a)
ho un NameError, non uno SyntaxError. Apparentemente, non sto capendo correttamente la regola. Qualcuno può spiegarlo? Grazie.
Puoi collegarti a dove citi? Questa pagina dice che dovrebbe essere sollevato un NameError: http://docs.python.org/py3k/reference/simple_stmts.html#the-del-statement – carl
@carl: Ci sono voluti alcuni per trovarlo anche tu; diversi paragrafi in http://docs.python.org/py3k/reference/executionmodel.html#naming-and-binding. –
Aggiunto il collegamento alla sezione appropriata del riferimento alla lingua. –