Ho trovato la risposta piuttosto facilmente: https://www.programiz.com/python-programming/global-local-nonlocal-variables
Quando provo ad assegnare un valore alla variabile, la tratta come locale! E quindi va in paranoia perché non è stata dichiarata prima. Diciamo che avrei preferito restituisse errore anche nel primo caso. Il giorno gio 20 ago 2020 alle ore 10:14 Valerio Pachera <siri...@gmail.com> ha scritto: > >>> def f(): > ... print(n) > ... > non ho ancora dichiarato n. > La dichiaro esternamente alla funzione, quindi (correggetemi se sbaglio) n > sarà una variabile globale. > > >>> n = 10 > >>> f() > 10 > > A conferma di quanto scritto sopra, n viene stampata. > > Ora faccio la stessa cosa ma faccio incrementare di 1 la variabile alla > funzione prima di stamparla. > > >>> def f(): > ... n += 1 > ... print(n) > ... > >>> n = 10 > >>> f() > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "<stdin>", line 2, in f > UnboundLocalError: local variable 'n' referenced before assignment > > E qua non capisco...perché riesco a stamparla ma non ad incrementarla? >
_______________________________________________ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python