Asociación de métodos en tiempo de ejecución en Python
Este post fue migrado de un blog hecho con Wordpress. Si se ve mal, dejame un comentario y lo arreglo.
En el primer artículo de La Historia de Python (en) se menciona, entre las cualidades que hacen a Python un lenguaje que permite la programación orientada a objetos, la posibilidad de "asociación de métodos en tiempo de ejecución" ("run-time binding of methods"). Hoy en otro artículo del autor, vuelvo a leer sobre el tema:
Now instances of C have a method with one argument named 'meth' that works exactly as before. It even works for instances of C that were created before the method was poked into the class.
Vamos a ver un ejemplo de esto:
>>> class C: ... pass ... >>> c1 = C() >>> c1.hello() Traceback (most recent call last): File "", line 1, in AttributeError: C instance has no attribute 'hello' >>> def hello(myself, name): ... myself.lasthello = name ... print "Hello %s" % name ... >>> C.hello = hello >>> c2 = C() >>> c2.hello("mary") Hello mary >>> c1.hello("juanjo") Hello juanjo
Comentarios
Comments powered by Disqus