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/

Responder a