[pyar] Cuando el futuro afecta el presente

Sebastian Bassi sebastian.bassi en globant.com
Vie Oct 23 22:23:08 ART 2015


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.

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20151023/52f5638f/attachment-0001.html>


More information about the pyar mailing list