Python vs Java C C++
Ernesto Revilla
aerd en retemail.es
Jue Mar 18 00:25:12 CET 2004
Sí, en el pickling he pensado también. Lo estudiaré poco a poco, pero es más complicado. Webware hace cosas de manera un poco más simples. Los clientes (softwares cliente) mantienen vínculos a los objetos en el servidor. Tengo que ver cómo lo haré.
Saludos.
Erny
----- Original Message -----
From: "Marcos Sánchez Provencio" <rapto en arrakis.es>
To: "La lista de python en castellano" <python-es en aditel.org>
Sent: Thursday, March 18, 2004 12:04 AM
Subject: Re: [Python-es] Python vs Java C C++
> 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
> >
> >
>
>
> _______________________________________________
> 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