[pyar] Cuando el futuro afecta el presente

Sebastián Seba ssebastianj en gmail.com
Mar Oct 27 09:44:14 ART 2015


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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20151027/92c3d5e7/attachment.html>


More information about the pyar mailing list