[Python] Caccia al bug, UnboundLocalError

Adriano Barbieri adrianobarb a yahoo.it
Lun 15 Apr 2013 14:12:37 CEST


Ciao Gabriel.
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.
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=''
Adriano

----- Original Message ----- 
From: "Gabriel Battaglia (Kriyaban)" <iz4apu a libero.it>
To: "Discussioni generali sul linguaggio Python" <python a lists.python.it>
Sent: Monday, April 15, 2013 10:18 AM
Subject: [Python] Caccia al bug, UnboundLocalError


Buongiorno, preparate i vostri gentili stomaci ad un'altra di quelle domande 
da super niubbo...

Sono alla caccia di un bug, per ora non posto il codice perchè la mia 
intenzione è più quella di raccogliere una informazione di
carattere generale, più avanti nel topic, se sarà necessario, posterò il 
link di pastebin.

Dunque, in breve la situazione è questa: uno script di circa 300 righe, con 
varie funzioni.
Le funzioni ricevono e restituiscono variabili e "vedono" variabili 
dichiarate, usate, a livelli ad esse superiori, come è normale
che sia.
Questo funziona tranne che per una variabile, a mio avviso usata come tutte 
le altre, che però produce questo errore:

UnboudLocalError: Local variable 'x1' referenced before assignment.

Quali sono le cause più probabili.. o l'unica causa possibile, che genera 
questo errore?

Se scrivo: x1=0, fuori dalla funzione, l'errore avviene comunque. Se lo 
scrivo dentro la funzione, l'errore scompare ma perdo anche
l'utilizzo di x1 perchè viene inizializzata a 0 ogni volta che chiamo la 
funzione, mentre io ho bisogno che x1 registri il valore
minimo toccato da un'altra variabile.

Grazie per l'aiuto.

GB.

_______________________________________________
Python mailing list
Python a lists.python.it
http://lists.python.it/mailman/listinfo/python 



Maggiori informazioni sulla lista Python