[Python-es] Comportamiento de python.

Jose Caballero jcaballero.hep en gmail.com
Mar Abr 8 23:40:23 CEST 2014


es una de esas cosas casi imposibles de encontrar en google (las key
words son o demasiado genericas o demasiado especificas).


El día 8 de abril de 2014, 12:08, Rock Neurotiko
<miguelglafuente en gmail.com> escribió:
> Vale...
> Juro que busqué en Google, pero no lo encontré XD
> Gracias! =D
>
>
> El 8 de abril de 2014, 21:06, Jose Caballero <jcaballero.hep en gmail.com>
> escribió:
>
>>
>> https://docs.python.org/3/tutorial/controlflow.html#default-argument-values
>>
>>
>>
>> El día 8 de abril de 2014, 12:02, Rock Neurotiko
>> <miguelglafuente en gmail.com> escribió:
>> > Muy buenas,
>> >
>> > Hace bastante que no escribo, pero hoy me he encontrado por reddit con
>> > un
>> > articulo en el que comenta una cosa de python, y no entiendo
>> > perfectamente
>> > que es lo que ocurre, asi que os pregunto, a ver si alguien sabe porqué
>> > sucede :-)
>> >
>> > El codigo es este:
>> >
>> > def foo(x = []):
>> >     x.append(1)
>> >     print(x)
>> >
>> > foo()
>> > foo()
>> > foo()
>> > [...]
>> >
>> > Recomiendo ejecutar, ya que el resultado es soprendente (a no ser que
>> > entiendas perfectamente como funciona python, o ya te hayas cruzado con
>> > esto
>> > XD)
>> >
>> > Y ahora mi pregunta: ¿Porqué sucede esto?
>> > Sé que tiene algo que ver con que Python al ejecutar la funcion la
>> > recorre
>> > buscando las variables que vaya a usar, y las guarda en el scope, en el
>> > primer caso x viene del parametro (que seria []).
>> > Como en python todo es un objeto, la llamada a foo() se queda como
>> > "instanciado", por lo que las siguientes ejecuciones, al buscar "x" la
>> > encuentra.
>> >
>> > No se si me explico, tampoco se si es eso, lo cierto es que estoy
>> > bastante
>> > confuso con esto XD
>> >
>> > Un saludo!
>> >
>> >
>> > --
>> > Miguel García Lafuente - Rock Neurotiko
>> >
>> > Do it, the devil is in the details.
>> > The quieter you are, the more you are able to hear.
>> > Happy Coding. Code with Passion, Decode with Patience.
>> > If we make consistent effort, based on proper education, we can change
>> > the
>> > world.
>> >
>> > El contenido de este e-mail es privado, no se permite la revelacion del
>> > contenido de este e-mail a gente ajena a él.
>> >
>> > _______________________________________________
>> > Python-es mailing list
>> > Python-es en python.org
>> > https://mail.python.org/mailman/listinfo/python-es
>> > FAQ: http://python-es-faq.wikidot.com/
>> >
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> https://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>
>
>
>
> --
> Miguel García Lafuente - Rock Neurotiko
>
> Do it, the devil is in the details.
> The quieter you are, the more you are able to hear.
> Happy Coding. Code with Passion, Decode with Patience.
> If we make consistent effort, based on proper education, we can change the
> world.
>
> El contenido de este e-mail es privado, no se permite la revelacion del
> contenido de este e-mail a gente ajena a él.
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>


Más información sobre la lista de distribución Python-es