Python vs Java C C++

Marcos Sánchez Provencio rapto en arrakis.es
Jue Mar 18 00:04:00 CET 2004


Webware permite parar y arrancar los servicios para hacer exactamente 
esto. Sólo hay que hacer que las clases sean almacenables con pickle, lo 
que no resulta demasiado complicado. Me imagino que otros servidores 
harán algo parecido.

Ernesto Revilla escribió:

>Hola
>
>pues me parece extraordinariamente interesante, lo de "P1.__dict__.update(P2.__dict__)" 
>
>Quizá es lo que necesito. Todo esto lo necesito para mi servidor de aplicaciones, como he dicho, que cuando haya una pila de personas conectadas y tengo que corregir código (normalmente para 1 ó 2 personas) no tenga que echar todo el mundo y reiniciar el servidor de aplicaciones.
>
>Pronto lo probaré!
>
>Muchas gracias,
>Erny
>
>
>Ernesto Revilla escribió:
>
>  
>
>>>Me interesaba cambiar el código y que las instancias ya existentes
>>>tengan en cuenta las modificaciones del código, es decir,
>>>métodos modificados, nuevos métodos, métodos que ya
>>>no existen e incluso nuevos atributos de clase.
>>>      
>>>
>
>  
>
>>El problema que cuentas se debe a que las clases no se "redefinen", se 
>>"suplantan". Al redefinir una clase, lo que haces en realidad es crear 
>>una nueva clase que tiene el mismo nombre. El objeto aún conserva la 
>>referencia de la clase con la que fue creada, que habría que actualizar 
>>con la "transmutación" que tanto dice Marcos.
>>    
>>
>
>  
>
>>Pero hay otra solución. Mira este ejemplo, por si te sirve de algo:
>>    
>>
>
>  
>
>>class P1:
>>  def info(self):
>>    print "Instancia de P1"
>>    
>>
>
>  
>
>>p=P()
>>p.info() # --> "Instancia de P1"
>>    
>>
>
>  
>
>>class P2:
>>  def info(self):
>>     print "Instancia de P2"
>>  def valor(self,val=10):
>>     self.dato=val
>>    
>>
>
>  
>
>>### Some kind of magic
>>P1.__dict__.update(P2.__dict__)
>>###
>>    
>>
>
>  
>
>>p.info()  #--> "Instancia de P2"
>>p.valor(100)
>>print p.dato  #--> 100
>>    
>>
>
>
>  
>
>>Y a partir de aquí puedes complicarlo todo lo que quieras, como utilizar 
>>las metaclases ó el atributo __new__ para construir una "factoría" de 
>>clases.
>>    
>>
>
>
>_______________________________________________
>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