[pyar] Bug o feature?

Daniel Moisset dmoisset en machinalis.com
Lun Feb 21 08:58:35 ART 2011


2011/2/20 Roberto Alsina <ralsina en netmanagers.com.ar>:
> On 2/20/2011 12:31 PM, Matias Graña wrote:
>>
>> 2011/2/20 Roberto Alsina<ralsina en netmanagers.com.ar>:
>>>
>>> Si se construyeran los defaults cada vez que se invocan sería trivial
>>> creal
>>> efectos secundarios aún más misteriosos.
>>
>> Muy posiblemente. Yo supongo que si
>> *) cuando se compila la función se ponen los parámetros default en un
>> sector de memoria inaccesible desde la función (y desde afuera), y
>> *) cada vez que se ejecuta una función se copian (con una deep copy)
>> estos parámetros
>> no habría efectos secundarios.
>
> El primer efecto secundario es que hay cosas que cuando les haces deepcopy
> se cuelgan :-)

Otro es que las funciones no deepcopian, y son mutables:

In [14]: def f():pass
   ....:

In [15]: f.verbose_name = 'efe'

In [16]: g = copy.deepcopy(f)

In [17]: g.verbose_name = 'ge'

In [18]: f.verbose_name
Out[18]: 'ge'



More information about the pyar mailing list