[Python] Caccia al bug, UnboundLocalError

Manlio Perillo manlio.perillo a gmail.com
Lun 15 Apr 2013 18:06:10 CEST


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

Il 15/04/2013 17:50, Adriano Barbieri ha scritto:
> Ma di quale linguaggio stai parlando? Non di Python e non di
> UnboundLocalError.
> 
> Come?
> E' perché ho detto definizione al posto di funzione... e un po' di
> elasticità sù daii :)

No.
Perchè hai scritto:

   L'errore può anche essere che x non sia del tipo corretto, ad
   esempio x="stringa" e poi la tenti di azzerare come un integer. cioè
   x=0 quando invece si dovrebbe scrivere x=''

Questo non è Python.

Inoltre anche quello che scrivevi prima:

   La x assegnata nella definizione ha vita solo al suo interno, se
   vuoi globalizzare il suo valore, prima  ti conviene chiamarla self.x
   ed usarla come tale.

Non è corretto, ma non perchè hai scritto definizione al posto di
funzione.  Inoltre che vuoi dire con "prima di conviene chiamarla self.x ?

> Dopotutto def non è sinonimo di definizione di funzione?
> Scusa ma provvengo ancora dalla programmazione di Amiga con AMOS Pro...
> da molto molto tempo, il Python è pochi mesi che lo mastico e mi sono
> iscritto a questa lista col desiderio di apprendere qualche nozione di
> programmazione in Python, ma fin'oranessuno si è degnato a rispondere a
> un paio di miei quesiti.

Non dimenticare che nessuno è tenuto a risponderti, dato che magari:

* non ha tempo di farlo quando vede il messaggio, oppure magari non lo
  ha notato
* non conosce l'argomento su cui chiedi aiuto
  (ci sono migliaia di librerie e non si possono conoscere tutte)
* non gli piace come è scritto il messaggio, ed in particolare è
  disturbato dal fatto che la risposta poteva essere ottenuta tramite
  una semplice ricerca su Internet.

  Per maggiori informazioni:

  http://www.catb.org/esr/faqs/smart-questions.html

> Senza polemizzare, in questa lista mi pare qualcuno abbia una esperienza
> decennale con questo linguaggio, ma forse si sente troppo superiore a
> sto principiante da neanche deniarlo di una risposta.
> 

> 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...

La diagnosi è corretta, ma non le due soluzioni che avevi proposto.


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

iEYEARECAAYFAlFsJXIACgkQscQJ24LbaUSkjgCgmPNEeGCkNGehub6CHwphfwXL
Gi4An3NivsAw8Y/r2awRmjIvslX538Cd
=S28J
-----END PGP SIGNATURE-----


Maggiori informazioni sulla lista Python