[Python-es] namespaces y variables globales

Alvaro Manrique sanreikaj.foros en gmail.com
Mie Nov 3 22:29:31 CET 2010


Buenas Tardes,

   Al igual me encontre con los mismos inconvenientes al empezar la
programacion y querer usar variables locales y globales, el resultado de las
lecturas que realicé y algunas preguntas hechas fue el siguiente

   La orden en la busqueda de las variables para sabes en que namespace esta
es:

        - Funcion
        - Modulo
        - Modulos importados (no recuerdo como se llama este namespace)

   En el programa que realice lo que hice fue que las variables que necesito
como global las declaro al inicio del modulo, es decir, antes de cualquier
funcion.
    Luego dentro de la funcion a usar la variable la declaron como global,
le asigno los valores que necesito y con eso ya la tengo disponible con
dichos valores para el resto del modulo.

   Seria algo asi:

   a=""

   def funcion_a()

       global a

        a="valor a asignar"

      De esta manera si desde otra funcion hago un "print a", el resultado
va a ser "valor a asignar".

   Espero ayude en algo esta info.

2010/11/3 Manuel E. Gutierrez <megutierrez en uci.cu>

>
> Y que tal esto:
>
>
> #!/usr/bin/env python
> #-*- coding: utf-8 -*-
> from optparse import OptionParser
>
> class ClaseGlobal(object):
>        a = 0
>
> def test_func():
>    print ClaseGlobal.a + 2
>
> def main():
>    parser = OptionParser()
>    parser.add_option('-t','--run_test', action='store_true', dest='run', \
>        help='Run test',default=False)
>    parser.add_option('-n', '--number', help='Number', dest='number', \
>        action='store', type='int', default=None)
>    options, args = parser.parse_args()
>
>    if not options.number:
>         ClaseGlobal.a = 1
>    else:
>        ClaseGlobal.a = options.number
>
>    if options.run:
>        #global a
>        test_func()
>
> if __name__ == '__main__':
>    main()
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20101103/2ecdd36a/attachment.html>


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