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