[Python] Caccia al bug, UnboundLocalError

Manlio Perillo manlio.perillo a gmail.com
Lun 15 Apr 2013 18:38:40 CEST


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Il 15/04/2013 18:26, Marco Giusti ha scritto:
> [...]
>> UnboudLocalError: Local variable 'x1' referenced before assignment.
>>
>> Dalla mia poca esperienza mi dice che è stata usata una variabile
>> prima di essere definita e quello che ho suggerito  mi è sembrato
>> chiaro e terra terra...
> 
> non proprio:
> 
>     Python 2.7.3rc2 (default, Apr 22 2012, 22:30:17)
>     [GCC 4.6.3] on linux2
>     Type "help", "copyright", "credits" or "license" for more information.
>     >>> a
>     Traceback (most recent call last):
>       File "<stdin>", line 1, in <module>
>     NameError: name 'a' is not defined
>     >>>
> 
> come vedi l'errore è ben differente. Leggi il link che è stato postato
> che è molto istruttivo.
> 

La gestione delle variabili locali è una delle poche cose non banali di
Python.

def foo():
    x += 1

y += 1
foo()


Sia il codice nel namespace globale, che quello all'interno della
funzione fanno esattamente la stessa cosa, eppure viene lanciata una
eccezione diversa.


Ciao  Manlio
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAlFsLRAACgkQscQJ24LbaUR3bgCeKjcBwuZSvkts+32g+0AROOZX
U/4An3YaLdEGPUzTPvyPBAQRHiJ2i7JV
=879r
-----END PGP SIGNATURE-----


Maggiori informazioni sulla lista Python