[pyar] ¿Se puede cambiar el objeto list de python?

Roberto Alsina ralsina en netmanagers.com.ar
Mar Nov 9 09:49:18 ART 2010


On Monday 08 November 2010 16:07:55 Matías Bellone wrote:
> 2010/11/8 david weil <tenuki en gmail.com>:
> > 2010/11/8 Roberto Alsina <ralsina en netmanagers.com.ar>:
> >> On Monday 08 November 2010 12:26:19 Hugo Ruscitti wrote:
> >>> uh. me temía eso, que no se pudiera... la verdad es que me gustaría la
> >>> opción 1 de cambiar el comportamiento de las listas, porque me parece
> >>> mas intuitivo para los usuarios usar las listas como si fueran listas
> >>> estándar de python y no un objeto de mi dominio... al menos dentro
> >>> de este framework que estoy armando...
> >> 
> >> No, eso no es intuitivo, eso es forth. Redefinir el lenguaje lo que hace
> >> es provocar lockin.
> > 
> > Me parece que extender una clase no es redefinir el lenguaje, al menos
> > en mi concepcion del lenguaje. :-)
> 
> Coincidimos.
> 
> Pero justamente cuando se recomendó extender la clase list, dijo que
> no quería eso sino que quería reemplazarla directamente tocando
> __builtins__.list (lo que le dejaba la construcción vía corchetes
> andando de otra forma y por lo que iba a tener que modificar el OPCODE
> de las listas para poder hacer lo que quería)

Esto se llama monkeypatching y... no me gusta. De hecho, el uso extensivo de 
monkeypatches en rails (ya que hablamos de usarlo en un framework) es una de 
las cosas que mucha gente se queja (y otra gente adora).

Por ejemplo, podes leer "Monkeypatching está destruyendo a Ruby":

http://avdi.org/devblog/2008/02/23/why-monkeypatching-is-destroying-ruby/



More information about the pyar mailing list