local variable referenced before assignment
nieto_a1 en tsm.es
nieto_a1 en tsm.es
Jue Dic 18 16:33:00 CET 2003
> Hola a todos,
> soy un poco nuevo en python y tengo un problema, que se meda
continuamente.
> Os lo cuento:
>
> Tengo una variable al principio de mi programa que la utilizo dentro de
una
> execpcion, para inicializarla a un valor concreto, cuando postertiormente
la
> hago referencia en la funcion principal con un simple print, me da el
error:
>
> local variable referenced before assignment
>
> La cosa seria asi(por ejemplo):
> try:
> variable=2
> from variables import *
> except ImportError, err:
> print "No se cargo el modulo. %s" % (err)
> sys.exit(2)
>
> def main():
> print variable
> if __name__ == '__main__': main()
>
> No se si en python hay que inicializar las variables antes de utilizarlas
> con un valor predeterminado.Hasta ahora cuando me daba este problema
> inicilizaba la variable antes de llamarla a un valor, 0 por ejemplo,pq el
> error no lo a dado siempre,sino que al hacer unos cambios en el programa
que
> no tiene que ver con la variable en cuestion,luego ejecute y me lo dio.
>
> Si alguien tiene una solucion agradeceria que me ayudara, pq estoy upoco
> perdido.
Hola,
El problema se debe a que la "supuesta" variable global no lo es porque si te fijas está definida
dentro del bloque try, es decir, sólo es existe entre el try y el catch. Una solución podría ser;
variable = 2
try:
from variables import *
except ImportError, err:
print "No se cargo el modulo. %s" % (err)
sys.exit(2)
def main():
print variable
if __name__ == '__main__': main()
Saludos
Más información sobre la lista de distribución Python-es