[pyar] Modificación de clases e instancias

Nats taku246 en gmail.com
Mie Ago 31 13:41:19 ART 2016


Si es un caso particular la buena practica de programacion seria generar
una clase nueva heredada de esa y agregar solo el metodo que queres

El 31 de agosto de 2016, 13:15, Javier Burroni <javier.burroni en gmail.com>
escribió:

> si solo cambio comportamiento, no necesito recrear las instancias.
> La solución me sirve para un caso particular, pero es el caso mas general.
> Adicionalmente, si quiero agregarle miembros a las instancias, como ahora
> tengo el all_instances, podría "regenerar" las instancias mas facilmente
>
>
> 2016-08-31 11:44 GMT-04:00 Daniel Moisset <dmoisset en machinalis.com>:
>
>> 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
>>
>> _______________________________________________
>> 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
>



-- 
NATS
*Cuando le preguntaron adonde queria llegar  Charlie Parker contesto:*
*"Quiero llegar a notas hermosas"*"

P *Please consider the environment before printing this email*
*Por favor, tené en cuenta el medio ambiente antes de imprimir este imail. *

*Join the campaign at http://thinkBeforePrinting.org
<http://thinkbeforeprinting.org/> *
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20160831/617e630e/attachment-0001.html>


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