digresiones (era: Python vs Java C C++)

Hernan Foffani hernan en orgmf.com.ar
Jue Mar 18 18:00:28 CET 2004


Chema escribio:
> [Debería cambiar el "asunto", pero no sabría qué poner :-P]

ya esta. :-)

>> ¿Y si al redifinir la clase uno de los atributos existentes
>> de la instancia cambia de tipo? ¿como lo resolverias?
>
> Se podría apañar creando "accesores" (sólo posible con __get__ ó
> __getattribute___) o creando "propiedades" (property()).

mis preguntas eran algo retoricas.  no me refería tanto
al problema técnico en sí (que ya es bastante complejo) si no mas
bien al hecho de mantener toda la aplicación en un estado estable.

por ej, puede darse el caso que la nueva clase C cambie un
determinado atributo "coleccion" de list a dict. todas las
instancias de C deberían recrear el atributo "coleccion" como dict
con el contenido de las list anteriores.
o si la nueva clase Cuenta cambia el atributo "titular" de la
clase Persona a la clase Cliente, todas las instancias de Persona
que sean atributos de instancias de la clase Cuenta deben
cambiar de clase a Cliente aún cuando tanto Cliente como Persona
no se hayan modificado per se.
todo esto dejando la semántica a un lado. no hay forma de hacer
un mecanismo "automatico" que, por ejemplo, cambie el atributo
"logging" de tipo string a file (o viceversa) porque a partir
de ahora decidimos mantener abierto el archivo de log para
mejorar la performance. ¿como automatizar la acción aplicar
ante cada cambio de cada atributo de cada instancia de cada
clase?

> ...
> Ya que se ha hablado de webware, el cherrypy también posee un
> mecanismo similar llamado "hotreload" por el que se avisa al servidor
> para que "recargue" las nuevas clases y recree las instancias a
> partir de ellas.

Esto es mas terrenal.  Me parece factible implementar un core
que sea el que se ocupe del "hotreload" de las clases que
implementan la lógica del negocio quedando el core de
este mecanismo.  (no invento nada nuevo...)

-H.




Más información sobre la lista de distribución Python-es