El día 18 de junio de 2010 10:38, Oswaldo Hernández <[email protected]> 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 > [email protected] > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Milton Inostroza Aguilera _______________________________________________ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
