Python vs Java C C++
Esteban Manchado Velázquez
zoso en demiurgo.org
Mie Mar 17 21:10:29 CET 2004
Holas, sólo un comentario:
On Wed, Mar 17, 2004 at 05:15:00PM +0100, Hernan Foffani wrote:
> [...]
> > 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.
>
> Aparte de CLOS, no conozco otro lenguaje (lo que no significa que
> no haya) que provea un mecanismo para hacerlo mas o menos bien.
> Ni siquiera DYLAN (y eso que se llama asi por DYnamic LANguage).
Por lo menos en cuanto a los métodos, en Ruby se puede de manera muy
sencilla; nuevos métodos, por supuesto; borrar métodos no sé si se puede;
añadir atributos, no estoy seguro (¿con qué valor quedarían en cada objeto?).
En el siguiente ejemplito lo hago con una de las clases base del lenguaje
(«String»), para más cachondeo:
------------------------------------ 8< ------------------------------------
s = "Literal de caracteres"
puts s.to_i # Conversión a entero
class String
alias :old_to_i :to_i
def to_i
puts "Redefino el método «to_i»"
old_to_i
end
end
puts s.to_i
------------------------------------ >8 ------------------------------------
Supongo que es bastante obvio lo que hace. La salida es, por supuesto:
------------------------------------ 8< ------------------------------------
0
Redefino el método «to_i»
0
------------------------------------ >8 ------------------------------------
Saludos,
--
Esteban Manchado Velázquez <zoso*demiurgo*org> - http://www.demiurgo.org
No software patents in Europe! - eurolinux.org - proinnova.hispalinux.es
Join Amnesty International - http://www.amnesty.org/actnow
Más información sobre la lista de distribución Python-es