La frase ganadora

Como todos los días, o la mayoría de los que hablo con Gastón por chat, siempre sale el tema de Python & Ruby y nos ponemos a boludear un rato, o con algún tema en particular, algo específico del lenguaje, o a insultarnos mostrando defectos del lenguaje contrario.

Hoy hablando de las 3ras Jornadas de Python en Santa Fé, me dijo que iba a ir y que iba a preguntar algo como:

“¿Cómo hago para insertar métodos en una clase
sin sobreescribirla? Como en los lenguajes modernos.”

Y para terminar, luego de mencionar que en Ruby se puede hacer, decir:

“Lo que pasa que en Japón ya es mañana, estamos en el futuro.”

3 pensamientos en “La frase ganadora

  1. Bueno… me parece que no hace falta que vaya hasta Santa Fe para encontrar la respuesta a esa pregunta, a menos que haya entendido mal, no se refiere a esto?:


    def ladrar(self):
    """Esta es una funcion, no un metodo de Perro"""
    print 'guau ('+self.nombre+')'

    class Perro:
    def __init__(self, nombre):
    self.nombre = nombre

    # Generamos un Perro antes de asignar el metodo ladrar
    a = Perro('cucho')

    # Ahora generamos el metodo ladrar
    Perro.ladrar = ladrar

    b = Perro('snoopy')

    # todos los perros ladran!
    a.ladrar()
    b.ladrar()

    De paso, me parece que ayuda a aclarar el tema de porque es necesario el self en los metodos de python😉

  2. cramm dice:

    Entiendo que, en realidad, entre los desarrolladores de Python se discute y se tiene bien presente el tema monkeypatching pero siempre asociado con la pregunta de hasta qué grado puede ser conveniente permitir la práctica sin afectar a las premisas que rigen el desarrollo del lenguaje (legibilidad, no darle a la gente ametralladoras para que amute las extremidades inferiores, por error, …); basta Googlear por “monkeyptaching python method class” (tuve que hacerlo un par de días atrás) para encontrar y blog posts y discusiones en las listas por GvR y otros. O sea que diría que en ese sentido no es que al lenguaje le falte “modernismo”.

    Ahora, irónicamente, en la comunidad Ruby pasa algo contrario. Hay quien(es) piensa(n) que el monkeypatching está “destruyendo” el lenguaje: http://avdi.org/devblog/2008/02/23/why-monkeypatching-is-destroying-ruby/

  3. Que grande Gabriel. Yo habia escrito otra antes de venir acá (entre leer el post en el Google Reader y que me habría esta página).

    Nada, como es algo distinta, la pongo igual:

    >>> class C(object):
    a = 7

    >>> C.foo = lambda self: self.a
    >>> c = C()
    >>> c.foo()
    7

    Slds!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: