[pyar] Modificación de clases e instancias

Fernando Pelliccioni fpelliccioni en gmail.com
Sab Sep 24 20:38:15 ART 2016


¿Y qué pasaría si el comportamiento lo modelaras con free-functions (no se
como las denominan en Python a las funciones que no pertenecen a una clase)
y en la clase sólo dejás atributos o funciones básicas?

No sé que es "Notebook", pero si necesitás agregar un nuevo comportamiento,
en vez de reescribir la clase simplemente creás una nueva función que
interactue con un objecto de dicha clase.

Saludos.
Fernando.

On Sep 18, 2016 19:22, "Javier Burroni" <javier.burroni en gmail.com> wrote:

> Claro, pero lo había resuelto con metaclasses. En realidad quería ver si
> había otra forma de resolverlo, pero aparentemente no. Me llama un poco la
> atención porque es algo súper común en ambientes interactivos, así que
> claramente la gente no usa objetos en esos casos.
> Gracias
>
> On Wednesday, September 14, 2016, Daniel Moisset <dmoisset en machinalis.com>
> wrote:
>
>> Buenas, vuelvo después de un tiempo porque me cruce con algo parecido que
>> me pareció que se podía usar
>>
>> fijate que en el adjunto hay un modulito changeclass, en el que podes
>> hacer algo como esto:
>>
>> http://linkode.org/CiNqgHkKxn7YpJNs2nHCD5
>>
>> Algo asi buscabas? Es medio chancho por dentro, y quedaron un par de
>> prints de debugging, pero para el caso interactivo mas o menos anda (nomas
>> tenes que acordarte de declarar tu clase con @patch al redefinirla (si lo
>> haces la primera vez tambien anda pero no es obligatorio)
>>
>> 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
>>
>
>
> --
> " 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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20160924/26af83c6/attachment-0001.html>


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