variables globales

rapto rapto en arrakis.es
Jue Feb 21 11:21:33 CET 2002


Python considera una variable local siempre que se le asigne un valor 
dentro de un bloque de visibilidad o ámbito. Si quieres modificar este 
comportamiento, puedes declarar la variable global.

#!/usr/bin/python
n=0
def A():
  global n #Se fuerza a que sea global
  print n
  n=n+1

def B():
  print n #Como no se asigna n, es global

print n
A()
B()

----- Mensaje Original -----
Remitente: Sergio Rua <srua en esware.com>
Fecha: Miércoles, Febrero 20, 2002 4:28 pm
Asunto: [python-es] variables globales

> Hola,
> 
>        Ante todo, gracias a todos por las respuestas en mi anterior
>        mensaje. Ya sé que algunas de mis preguntas son un poco 
> idiotas        (en especial la de hoy) pero a veces el programar 
> en muchos
>        lenguajes proboca equivocaciones graves.
> 
> 
>        En fin, que mi problema de hoy es que en el programa que estoy
>        haciendo necesito usar una variable global que no siempre me
>        funciona. Os pongo un ejemplo de cómo las uso:
> 
>        #!/usr/bin/python
> 
>        n=0
> 
>        def A():
>                print n
>                n=n+1 #Esta asignación convierte a n en local
> 
>        def B():
>                print n #Ésta es global, por que no se asigna dentro 
del bloque
> 
> 
>        print n
>        A()
>        B()
> 
> 
> 
>        Si mi variable es "n", cómo tendría que definirla para que la
>        reconozcan las funciones A y B?
> 
> 
> Un saludo,
> 
>                Sergio Rua <srua en esware.com>
>                Departamento  de  Desarrollo
>                 http://esware365.net/~srua
> 
> 





Más información sobre la lista de distribución Python-es