[pyar] Cuando el futuro afecta el presente

Federico Apelhanz elmaildejapel en gmail.com
Vie Oct 23 22:32:45 ART 2015


Si querias que hiciera print 2 veces de foo y despues le asignara el 2 (a
foo), te falto hacer un

global foo
foo = 2

No veo lo raro :p

El 23 de octubre de 2015, 22:23, Sebastian Bassi <
sebastian.bassi en globant.com> escribió:

> Hoy me encontré con esto, me llamó mucho la atención que algo tan
> llamativo nunca lo haya visto pese a que tengo mas de 10 años programando
> en Python:
>
>
> ===============================================
> foo = 1
>
> def test_foo():
>     print foo
>
> def new_test_foo():
>     print foo
>     foo = 2
>
> test_foo()
> new_test_foo()
> ===============================================
>
> test_foo se ejecuta sin problemas (porque al no encontrar foo en el ambito
> de la función, lo busca en el ambito anterior y lo encuentra).
> new_test_foo, me dá un error inesperado (para mi):
> Traceback (most recent call last):
>   File "/home/sbassi/foo.py", line 15, in <module>
>     new_test_foo()
>   File "/home/sbassi/foo.py", line 10, in new_test_foo
>     print foo
> UnboundLocalError: local variable 'foo' referenced before assignment
>
> Lo que me parece "raro" es que el programa falla en la linea "print foo"
> de new_test_foo, pero debido a lo que va a ocurrir en la siguiente linea,
> ya que el print foo de la funcion test_foo no falla.
>
> Nada, lo comentaba aca porque me llamó la atención, no recuerdo que me
> haya ocurrido en otro lenguaje (tanpoco es que conozco tantos).
>
>
>
>
> --
> Sebastián Bassi. sebastian.bassi en globant.com
> Lic. en Biotecnología con orientación en genética molecular.
>
>
> The information contained in this e-mail may be confidential. It has been
> sent for the sole use of the intended recipient(s). If the reader of this
> message is not an intended recipient, you are hereby notified that any
> unauthorized review, use, disclosure, dissemination, distribution or
> copying of this communication, or any of its contents,
> is strictly prohibited. If you have received it by mistake please let us
> know by e-mail immediately and delete it from your system. Many thanks.
>
>
>
> La información contenida en este mensaje puede ser confidencial. Ha sido
> enviada para el uso exclusivo del destinatario(s) previsto. Si el lector de
> este mensaje no fuera el destinatario previsto, por el presente queda Ud.
> notificado que cualquier lectura, uso, publicación, diseminación,
> distribución o copiado de esta comunicación o su contenido está
> estrictamente prohibido. En caso de que Ud. hubiera recibido este mensaje
> por error le agradeceremos notificarnos por e-mail inmediatamente y
> eliminarlo de su sistema. Muchas gracias.
>
>
> _______________________________________________
> 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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20151023/8d8780a6/attachment.html>


More information about the pyar mailing list