local variable referenced before assignment
Chema Cortes
py en ch3m4.org
Jue Dic 18 14:04:17 CET 2003
fermunyoz en softhome.net escribió:
> 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 entiendo bien muy bien el problema a partir del ejemplo, pero puede
que esté relacionado con que en python, dentro de una función toda
variable es global hasta que se le asigna un valor:
x=0
def f():
print x
# x=1
El comando print falla si quitas el último comentario, pues x pasa de
ser una variable global a local por culpa de la última asignación.
Seguramente tu código funcionaba bien hasta que asignabas a la variable
un valor dentro de la función. Lo mejor es que declares explícitamente
las variables globales dentro de las funciones.
Más información sobre la lista de distribución Python-es