[pyar] Modificación de clases e instancias

Daniel Moisset dmoisset en machinalis.com
Mie Ago 31 12:44:00 ART 2016


Pero para, si modificas las clases con python tal como es (hacinedo
Clase.barquillo = nueva_funcion), no tenes que recrear las instancias. Vos
lo que querés es cambiar la clase de forma tal que las instancias viejas
queden sin barquillo, pero las nuevas de ahora en mas la tengan?

Saludos,
D.

2016-08-31 16:41 GMT+01:00 Javier Burroni <javier.burroni en gmail.com>:

> El problema es este:
>
> Escribo mi clase y le pongo el método "pirulin". Me hago un par de
> instancias (que puede ser un proceso costoso). Luego, me doy cuenta que
> pirulin no están piola como método, y que además necesito otro método:
> barquillo. Modifico la clase para agregar el nuevo método y arreglar el que
> ya estaba. Ahora, tendría que volver a crear las instancias. Eso es lo que
> me quiero evitar.
> Esto aparece mucho si usamos python en un ambiente interactivo, como el
> notebook o la consola.
> Que las instancias usen las nuevas clases es el comportamiento default de
> ruby (creo) y smalltalk (seguro)
>
> 2016-08-31 11:35 GMT-04:00 Daniel Moisset <dmoisset en machinalis.com>:
>
>> No se si entendí bien a que problema le estas apuntando... las clases de
>> algun modo son la parte "compartida" de sus instancias, por eso modificar
>> una afrecta a todos. Que necesitas hacer que no puedas lograr modificando
>> la instancia en vez de la clase?
>>
>> Saludos,
>>     D.
>>
>> 2016-08-31 16:21 GMT+01:00 Javier Burroni <javier.burroni en gmail.com>:
>>
>>> Hola, como están?
>>> Hay algo que me resulta un poco incomodo: Cuando modifico una clase, las
>>> instancias referencian a la anterior versión de la clase. Esto es
>>> discutible, con ventajas y desventajas, pero para lo que uso python el
>>> 99,9% de las veces, me resulta incomodo.
>>> Quería ver si existe alguna forma de solucionar esto (o modificar este
>>> comportamiento)
>>> Hice un pequeño código con metaclases que soluciona el problema en el
>>> caso mas simple. Tengo entendido que en python 3 hay ephemerons, así que la
>>> solución podría quedar un poco mas prolija.
>>> El código es solamente para probar la idea: https://gist.github.com/
>>> jburroni/0a2db81ba541e1d8dc632368fd7f8982 pero me interesa saber si hay
>>> alguna solución standard
>>>
>>> saludos
>>> jb
>>>
>>> --
>>> " To be is to do " ( Socrates )
>>> " To be or not to be " ( Shakespeare )
>>> " To do is to be " ( Sartre )
>>> " Do be do be do " ( Sinatra )
>>>
>>> _______________________________________________
>>> 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 - UK Country Manager
>> www.machinalis.com
>> Skype: @dmoisset
>>
>> _______________________________________________
>> 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
>>
>
>
>
> --
> " To be is to do " ( Socrates )
> " To be or not to be " ( Shakespeare )
> " To do is to be " ( Sartre )
> " Do be do be do " ( Sinatra )
>
> _______________________________________________
> 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 - UK Country Manager
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/20160831/39bbb9b6/attachment.html>


Más información sobre la lista de distribución pyar