[Python-es] namespaces y variables globales

Alvaro Manrique sanreikaj.foros en gmail.com
Mie Nov 3 22:53:08 CET 2010


Perdon por el error

  La orden ....

   El orden ....

El 03/11/10, Alvaro Manrique <sanreikaj.foros en gmail.com> escribió:
> 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/
>>
>

-- 
Enviado desde mi dispositivo móvil


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