<div dir="ltr">Quizás me confunda, corregirme si es así, pero la evaluación perezosa[1] es simplemente no evaluar las expresiones si no hay necesidad, así que no tengo muy claro que tiene que ver eso con que en Python las funciones sean objetos y sus argumentos sean parte del estado del objeto, por lo que al utilizar un tipo de datos mutable genera esta situación [2].<div>
<br></div><div>[1] <a href="http://en.wikipedia.org/wiki/Lazy_evaluation">http://en.wikipedia.org/wiki/Lazy_evaluation</a><br></div><div>[2] <a href="http://stackoverflow.com/questions/1132941/least-astonishment-in-python-the-mutable-default-argument">http://stackoverflow.com/questions/1132941/least-astonishment-in-python-the-mutable-default-argument</a><br>
</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-04-09 17:58 GMT+02:00 Rock Neurotiko <span dir="ltr"><<a href="mailto:miguelglafuente@gmail.com" target="_blank">miguelglafuente@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>No completamente como Haskell, pero si, en algunos casos si :-P<br><br></div><div>Mi problema en el primer email era que no sabia que se comportaba asi para los parámetros, ahora si lo se, y espero que el resto también =D<br>
</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">El 9 de abril de 2014, 17:49, Arturo Llaja Alarcón <span dir="ltr"><<a href="mailto:artus.lla@autistici.org" target="_blank">artus.lla@autistici.org</a>></span> escribió:<div>
<div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#CCCCFF"><div><div>
<div>On 09/04/14 10:47, Rock Neurotiko
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>Claro, ese es el comportamiento que se espera si conoces
cómo funciona Python al asignar los valores.<br>
<br>
En otros lenguajes, el valor por defecto siempre se evalua (en
python solo la primera vez que llamas a ese metodo), por lo
que si no le pasas el parametro siempre va a ser el que viene
por defecto, por mucho que sea mutable el tipo, ya que evaluan
el valor por defecto.<br>
<br>
Pero, como digo, en Python no es así, y para la gente que no
lo sepa (como yo al iniciar el hilo) les puede traer
problemas.<br>
</div>
<br>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">El 9 de abril de 2014, 17:39, Arturo
Llaja Alarcón <span dir="ltr"><<a href="mailto:artus.lla@autistici.org" target="_blank">artus.lla@autistici.org</a>></span>
escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#CCCCFF">
<div>On 09/04/14 09:38, Rock Neurotiko wrote:<br>
</div>
<blockquote type="cite">x = []</blockquote>
Pero se lo estás pasando en la línea:<br>
def foo(x = []):<br>
<br>
Según lo que leo, la función crea una variable x, y le
asigna un valor x.append(1), en ningún momento la destruye
ni la reinicia.<br>
<br>
La variable x se queda en memoria y por lo tanto al llamar
de nuevo la función foo() se agrega un valor a la lista,
recuerda que las listas son mutables.<br>
<br>
Para que siempre tengas un mismo valor mejor sería usar
una tupla:<br>
<br>
def foo(x=()):<br>
x = (1)<br>
print(x)<br>
<br>
<br>
foo()<br>
1<br>
<br>
foo()<br>
1<br>
<br>
tal como se describe en la resolución de variables locales
y globales de Python. <br>
Es mi observación, salvo mejor opinión, </div>
<br>
_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br>
</blockquote>
</div>
<br>
<br clear="all">
<br>
-- <br>
<div dir="ltr">
<div style="text-align:center"><span style="color:rgb(51,51,51);font-family:Arial,Helvetica,sans-serif;line-height:16px">Miguel
García Lafuente - Rock Neurotiko</span></div>
<div style="text-align:center"><span style="color:rgb(51,51,51);font-family:Arial,Helvetica,sans-serif;line-height:16px"><br>
</span></div>
<div style="text-align:center"><span style="color:rgb(51,51,51);font-family:Arial,Helvetica,sans-serif;line-height:16px">Do
it, the devil is in the details.</span></div>
<div style="text-align:center"><font color="#333333" face="Arial, Helvetica, sans-serif"><span style="line-height:16px">The quieter you are, the more
you are able to hear.</span></font></div>
<div style="text-align:center">
<span style="font-family:Helvetica,arial,verdana;font-size:15px;line-height:22.5px;text-align:left">Happy
Coding. Code with Passion, Decode with Patience.</span><font color="#333333" face="Arial, Helvetica, sans-serif"><span style="line-height:16px"><br>
</span></font></div>
<div style="text-align:center">If we make consistent effort,
based on proper education, we can change the world.<span style="color:rgb(51,51,51);font-family:Arial,Helvetica,sans-serif;line-height:16px"></span></div>
<div style="text-align:center"><span style="color:rgb(51,51,51);font-family:Arial,Helvetica,sans-serif;line-height:16px"><br>
</span></div>
<div style="text-align:center"><span style="color:rgb(51,51,51);font-family:Arial,Helvetica,sans-serif;line-height:16px">El
contenido de este e-mail es privado, no se permite la
revelacion del contenido de este e-mail a gente ajena a
él.</span></div>
</div>
</div>
<br>
<fieldset></fieldset>
<br>
<pre>_______________________________________________
Python-es mailing list
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a>
<a href="https://mail.python.org/mailman/listinfo/python-es" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a>
</pre>
</blockquote></div></div>
Python usa la evaluación perezosa :)<br>
<br>
Saludos.<br>
</div>
<br>_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div></div></div><div><div class="h5"><br><br clear="all"><br>-- <br><div dir="ltr"><div style="text-align:center"><span style="color:rgb(51,51,51);font-family:Arial,Helvetica,sans-serif;line-height:16px">Miguel García Lafuente - Rock Neurotiko</span></div>
<div style="text-align:center"><span style="color:rgb(51,51,51);font-family:Arial,Helvetica,sans-serif;line-height:16px"><br></span></div><div style="text-align:center"><span style="color:rgb(51,51,51);font-family:Arial,Helvetica,sans-serif;line-height:16px">Do it, the devil is in the details.</span></div>
<div style="text-align:center"><font color="#333333" face="Arial, Helvetica, sans-serif"><span style="line-height:16px">The quieter you are, the more you are able to hear.</span></font></div><div style="text-align:center">
<span style="font-family:Helvetica,arial,verdana;font-size:15px;line-height:22.5px;text-align:left">Happy Coding. Code with Passion, Decode with Patience.</span><font color="#333333" face="Arial, Helvetica, sans-serif"><span style="line-height:16px"><br>
</span></font></div><div style="text-align:center">If we make consistent effort, based on proper education, we can change the world.<span style="color:rgb(51,51,51);font-family:Arial,Helvetica,sans-serif;line-height:16px"></span></div>
<div style="text-align:center"><span style="color:rgb(51,51,51);font-family:Arial,Helvetica,sans-serif;line-height:16px"><br></span></div><div style="text-align:center"><span style="color:rgb(51,51,51);font-family:Arial,Helvetica,sans-serif;line-height:16px">El contenido de este e-mail es privado, no se permite la revelacion del contenido de este e-mail a gente ajena a él.</span></div>
<div style="text-align:center"></div></div>
</div></div></div>
<br>_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div><br></div>