[pyar] [Variables Globales]What are the rules for local and global variables in Python?

Apokalyptica Painkiller apokalyptica79 en gmail.com
Lun Jun 3 21:26:47 ART 2013


Gracias a todos por las respuestas, son anotaciones que van a mi apunte!! :D


El 3 de junio de 2013 21:18, Facundo Batista <facundobatista en gmail.com>escribió:

> 2013/6/3 Apokalyptica Painkiller <apokalyptica79 en gmail.com>
>
> > Hola gente, acá va una pregunta (preguntonta) sobre variables.
> >
> > Leyendo me encontré que hay quienes dicen que no es bueno o no es
> aconsejable y/o recomendable el uso de variables globales. Si es así, por
> qué no es aconsejable?
> >
> > Ahora estoy leyendo el siguiente link:
> > What are the rules for local and global variables in python y
> sinceramente no me queda claro, el tema de la variable globa.
> >
> > Hice un ejemplo sencillo donde defino una función y dentro de ella hago
> uso de 2 variables globales, en mi ejemplo si, me queda claro y lo entiendo,
>
> No es que es no hay que usar variables globales. Lo que hay que tratar
> de evitar es *modificar* variables globales desde otros lados.
>
> Un típico uso de las variables globales es para las constantes, ejemplos:
>
> MONTHS = ["Ene", "Feb", ...]
> TIMEOUT = 120  # segundos
>
> etc.
>
> Vos ves esas variables, en mayúscula, y decís "ok, son constantes, no
> se tocan" [0], laburás tranquila
>
> Pero imaginate que tenés variables globales que después tocás desde
> otras funciones. Para saber que eso sucede, tendrías que leer toooodas
> las funciones del módulo para ver dónde y cómo se tocan esas
> variables. Esto, aunque posible, no está bueno en la realidad porque
> lo más probable es que te termine sorprendiendo esas modificaciones.
>
> Vos dirás "pero tengo varias funciones separadas que necesitan usar
> una variable en común". En general, la respuesta a esto es una clase,
> siendo la variable un atributo del objeto, y las funciones métodos del
> mismo.
>
> Saludos!
>
> [0] Aunque a veces es útil reemplazarlas por algo distinto en el caso
> de unittests... por ejemplo, reemplazando TIMEOUT por .1 para probar
> que la función que timeoutea ande y no tener que esperar 120s en el
> test.
>
> --
> .    Facundo
>
> Blog: http://www.taniquetil.com.ar/plog/
> PyAr: http://www.python.org/ar/
> Twitter: @facundobatista
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>



-- 
I live each day
Like it's my last
I live for rock and roll
I never look back

I'm a rocker
Do as I feel as I say
I'm a rocker
And no one can take that away
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130603/163201a7/attachment.html>


More information about the pyar mailing list