Python vs Java C C++
Marcos Sánchez Provencio
rapto en arrakis.es
Dom Mar 21 17:19:35 CET 2004
A mí me parece que deberías desacoplar el comportamiento previsiblemente
variable en otro atributo, de manera que:
De
empresa.hazesto()
pasarías a
empresa.reglas.hazEsto()
y para migrar
empresa.reglas=otrasReglas
los atributos que no variaran seguirían en el mismo sitio; los que
cambien, la migración de versión no te la quita nadie.
Ernesto Revilla escribió:
>----- Original Message -----
>From: "Hernan Foffani" <hernan en orgmf.com.ar>
>...
>
>
>>>... El evitar tener que rearrancar el software lo
>>>hace realmente más escalable. En vez de empresas con 5 puestos puedo
>>>ponerselo a los que tengan 20 ó 30.
>>>
>>>
>>Concuerdo contigo. Pero en ese caso ¿es necesario que TODO el
>>servidor de aplicacion sea actualizable en tiempo real? (por TODO me
>>refiero a todos los modulos del sistema.)
>>¿no te sería mas fácil reducir la capacidad de hacer modificaciones
>>en caliente a solo una parte del mismo? (la que da servicios a
>>usuarios)
>>
>>
>
>sí, en principio sólo se reduce a una parte pequeña de la aplicación,
>que son las clases de negocio, pero de los cuales puede haber
>60 ó 70 y que viven normalmente en el mismo directorio y que
>además siempre van a ser 'from NombreEntidad import NombreEntidad'.
>
>Acabo de probar:
>
>
>>>>class MiObjeto(object):
>>>>
>>>>
> def metodo(self):
> print "implementación 1"
>
>
>>>>mo=MiObjeto()
>>>>class MiObjeto(object):
>>>>
>>>>
> def metodo(self):
> print "implementación 2"
>
>
>>>>mo.__class__=MiObjeto
>>>>mo.metodo()
>>>>
>>>>
>implementación 2
>
>bajo Python 2.2 y 2.3 y me funciona bien, lo que me puede servir. Lo que no funciona (en Python 2.3) es:
>
>
>>>>class MiObjeto(object):
>>>>
>>>>
> def metodo(self):
> print "implementación 1"
>
>
>>>>mo=MiObjeto()
>>>>class MiObjeto(object):
>>>>
>>>>
> def metodo(self):
> print "implementación 2"
>
>
>>>>mo.__class__.__dict__.update(MiObjeto.__dict__)
>>>>
>>>>
>Traceback (most recent call last):
> File "<pyshell#20>", line 1, in -toplevel-
> mo.__class__.__dict__.update(MiObjeto.__dict__)
>AttributeError: 'dictproxy' object has no attribute 'update'
>
>ni me deja actualizar cambiar el atributo __dict__ (reemplazarlo por otra copi)
>
>Erny
>
>_______________________________________________
>Python-es mailing list
>Python-es en aditel.org
>http://listas.aditel.org/listinfo/python-es
>
>
Más información sobre la lista de distribución Python-es