Reply to the Daniele Zambelli's message, wrote on 16/11/2020 at 21:58:
Il giorno lun 16 nov 2020 alle ore 09:44 Strap Lab <l...@strap.it> ha scritto:
[...]

a = 10
def do():
...     a = a + 1
...     print(a)
...
print(a)
10
do()
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
   File "<stdin>", line 2, in do
UnboundLocalError: local variable 'a' referenced before assignment

Per aggiungere un esempio che forse può aiutarti a chiarire le idee, o
a confonderle del tutto:

a = 10
def do_b():
     b = a + 1
     print(b)


def do_a():
     a = a + 1
     print(a)


a
10
do_b()
11
do_a()
Traceback (most recent call last):
   File "<pyshell#13>", line 1, in <module>
     do_a()
   File "<pyshell#10>", line 2, in do_a
     a = a + 1
UnboundLocalError: local variable 'a' referenced before assignment


In questo ultimo caso, la variabile a poiché si trova a sinistra
dell'uguale, è una variabile locale alla funzione e "nasconde" la
variabile a globale. Ma quando Python tenta di eseguire a + 1, a
(quella locale) non è ancora istanziata e Python non sa cosa fare.

Grazie anche a te Daniele, buona giornata!
Gabriele.
_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python

Rispondere a