[Python] Dubbio su name space / variabili globali

Valerio Pachera sirio81 a gmail.com
Gio 20 Ago 2020 10:14:49 CEST


>>> 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/5c6f3128/attachment.html>


Maggiori informazioni sulla lista Python