[Python] Dubbio su name space / variabili globali
Valerio Pachera
sirio81 a gmail.com
Gio 20 Ago 2020 15:49:09 CEST
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 <sirio81 a 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?
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20200820/db1834c5/attachment.html>
Maggiori informazioni sulla lista
Python