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