Tienes que reemplazar la copia de la variable global antes de modificar su valor:
ej: def __init__(self): global __conectado __conectado = False Por otra parte espero que tengas un buen motivo para usar la declaración 'global' en python, ya que (espero que nadie se me tire encima) declarar globales en python es un poco absurdo: http://stackoverflow.com/questions/146557/do-you-use-the-global-statement-in-python Un saludo, Oscar Carballal El 5 de septiembre de 2012 16:35, kausdiv <kaus...@gmail.com> escribió: > Hola. > Os parecerá absurdo pero tengo un pequeño problema de principiante y no > veo la solución: > > -----------------Clase--------**--- > class Telefono(): > global __cursor > global __db > global __conectado > > def __init__(self): > __conectado = False > > def prueba(self): > if __conectado != True: > print "ok conectado" > else: > print "NO conectado" > > ------------------ > > En main(): > > tlf = Telefono() > tlf.prueba() > > y sale el siguiente error: > if __conectado != True: > NameError: global name '_Telefono__conectado' is not defined. ( en la > linea del procedimiento prueba) > > He puesto un print en el __init__ y se ejecuta y por tanto se asigna a > False. > > ¿ que puede ser ? > > Saludos > > ______________________________**_________________ > Python-es mailing list > Python-es@python.org > http://mail.python.org/**mailman/listinfo/python-es<http://mail.python.org/mailman/listinfo/python-es> > FAQ: http://python-es-faq.wikidot.**com/<http://python-es-faq.wikidot.com/> >
_______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/