[pyar] Cuando el futuro afecta el presente

Daniel Moisset dmoisset en machinalis.com
Lun Oct 26 18:22:15 ART 2015


Claro. Cualquier cosa que escribe una variable x (por ejemplo "x= valor",
"for x in ...", "import foo as x", "try: ... except Exception as x: ...")
hace en tiempo de compilación que esa variable sea local para todo el
cuerpo de la función, a menos que haya un scoping clause ("global x" o
"nonlocal x") que indique lo contrario

2015-10-26 18:19 GMT-03:00 Angel Java Lopez <ajlopez2000 en gmail.com>:

> Por lo que entiendo, el compilador Python detecta que la variable a esta
> asignada en la funcion new_test_foo y de ahi, deduce que es variable local.
>
> Debe ser similar al "hoisting" de variables de JavaScript
>
> En una funcion JavaScript
>
> function () {
>    a = 1;
>
>    var a;
> }
>
> la definicion de la variable, EN CUALQUIER LADO de la funcion, es como que
> BURBUJEA hast el comienzo de la funcion:
>
> function () {
>    var a;
>    a = 1;
> }
>
> O tambien
>
> function () {
>    // parva de codigo
>
>    var a = 2;
> }
>
> se BURBUJEA a:
>
> function () {
>    var a;
>    // parva de codigo
>
>    a = 2;
> }
>
> Por lo que entendi de Python, la asignacion de variable en la funcion,
> pasa como DECLARACION de variable local, es asi?
>
> Nos leemos!
>
> Angel "Java" Lopez
> @ajlopez
>
>
>
> 2015-10-26 18:12 GMT-03:00 Sebastian Bassi <sebastian.bassi en globant.com>:
>
>> 2015-10-23 18:32 GMT-07:00 Federico Apelhanz <elmaildejapel en gmail.com>:
>>
>>> 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
>>>
>>
>> ​Lo que me parece raro es que el interprete me diga que en new_test_foo
>> que hago referencia a foo antes de asignarlo, solo porque detecta que
>> despues lo voy a asignar, en lugar de hacer como en test_foo que​ lo busca
>> en el ambito fuera de la función.
>>
>>
>> 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
>>
>
>
> _______________________________________________
> 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
>



-- 
Daniel F. Moisset - Technical Leader
www.machinalis.com
Skype: @dmoisset
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20151026/f7ce7536/attachment.html>


More information about the pyar mailing list