[pyar] Cuando el futuro afecta el presente

Nicolas Rebagliati nicolas.rebagliati en aenima-x.com.ar
Mar Oct 27 10:45:40 ART 2015


Hace poco vi este mismo ejemplo en un libro muy copado, como el interprete
cuando analiza la función detecta que hay una variable foo en el scope
local no importa que exista foo en el scope global.
Va a usar la interna, pero como aun no se instancio da el UnboundErrror

2015-10-27 9:44 GMT-03:00 Sebastián Seba <ssebastianj en gmail.com>:

> El vie., oct. 23, 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:// <http://listas.python.org.ar/listinfo/pyar>listas.python.org.ar
> <http://listas.python.org.ar/listinfo/pyar>/
> <http://listas.python.org.ar/listinfo/pyar>listinfo
> <http://listas.python.org.ar/listinfo/pyar>/
> <http://listas.python.org.ar/listinfo/pyar>pyar
> <http://listas.python.org.ar/listinfo/pyar>
>
> PyAr - Python Argentina - Sitio web: http:// <http://www.python.org.ar/>
> www.python.org.ar/ <http://www.python.org.ar/>
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http:// <http://www.usla.org.ar>www.usla.org.ar
>
>
> Justo estaba leyendo el FAQ de Python 3 y aparece este caso de Unbound
> Error [0]
>
> Saludos.
> [0]
> https://docs.python.org/3/faq/programming.html#why-am-i-getting-an-unboundlocalerror-when-the-variable-has-a-value
>
>
> --
>
> Sebastián J. Seba
>
> _______________________________________________
> 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/20151027/6ad5b58d/attachment.html>


More information about the pyar mailing list