[Python-es] scope de variables
Milton Galo Patricio Inostroza Aguilera
minoztro en gmail.com
Vie Jun 18 17:51:44 CEST 2010
El día 18 de junio de 2010 10:38, Oswaldo Hernández
<listas en soft-com.es> escribió:
> Milton Galo Patricio Inostroza Aguilera escribió:
>>
>> El día 18 de junio de 2010 09:43, Oswaldo Hernández
>> ......
>>>
>>> La funcion imagen() no ve las variables que has definido fuera de ella.
>>
>> Eso lamentablemente es un error bastante común en los programadores
>> (yo igual antes pensaba eso). La función ve TODO lo que está
>> definida en su scope al momento de nacer = Scope léxico o Scope
>> estático (también lo llaman).
>>
>
> explícame esto:
>
>>>> def func1():
> ... def func2():
> ... a = 5
> ... a = 0
> ... func2()
> ... print a
> ...
>>>>
>>>> func1()
> 0
gracias a dios da 0 ya que python tienen scope léxico y no scope
dinámico =)....se ves la definición scope léxico no te permite pisar
el valor de identificadores con el mismo nombre, lo que permite que
func2 no te modifique la variable a ;) que no pertenece a func2...si
ves en el frame le dices a func2 que ponga en su ambiente una a con
valor cinto por lo que a ya no es una variable libre.
si pones a=0 arriba de func2 dará exactamente lo mismo.
Saludos,
P.S.: en todo caso el comentario (del mail anterior) no fue algo
personal, solamente quería aclarar conceptos.
>
>
> --
> Oswaldo Hernández
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
--
Milton Inostroza Aguilera
Más información sobre la lista de distribución Python-es