[pyar] Bug o feature?

Roberto Alsina ralsina en netmanagers.com.ar
Dom Feb 20 12:02:32 ART 2011


On 2/20/2011 11:55 AM, Matias Graña wrote:
> Creo que Pablo se refiere a la tupla func_defaults, no a cada uno de
> sus elementos. Yo fui el que dijo que para que el comportamiento fuera
> el que es, era importante que fuese una tupla. La verdad, no estoy tan
> seguro. Con los elementos de las listas pasa lo mismo. Esto es lo que
> pasa con las tuplas:
>
>>>> >>>  l = [1]
>>>> >>>  fd = (l,)
>>>> >>>  l.append(2)
>>>> >>>  fd
> ([1, 2],)
>
> y esto es lo que pasaría con una lista:
>
>>>> >>>  l = [1]
>>>> >>>  fd = [l]
>>>> >>>  l.append(2)
>>>> >>>  fd
> [[1, 2]]
>
> O sea, es lo mismo.

Claro. Que la tupla sea inmutable no significa que sus elementos lo sean :-)

> Lo importante para que resulte en este bug/feature
> es que el objeto func_defaults se construye cuando se compila la
> función y no cada vez que se la invoca.
Si se construyeran los defaults cada vez que se invocan sería trivial 
creal efectos secundarios aún más misteriosos.



More information about the pyar mailing list