El 16/06/2011 18:18, Pepe Aracil escribió:
Hola lista.
Estoy haciendo un desarrollo con gevent http://www.gevent.org/
El caso es que gevent permite tener un backdoor (linea de comandos
python por telnet) mediante el cual puedo manipular cualquier objeto del
proceso python en tiempo de ejecución.
Lo que pretendo es poder parchear metodos de instancias en tiempo de
ejecución. Por ejemplo:
class C(object):
def f(self):
print "version 1"
c = C()
c.f()
>> "version 1"
def f1(self):
print "version 2"
c.f = f1()
c.f()
>> TypeError: f1() takes exactly 1 argument (0 given)
El caso es que c.f sigue siendo una función y no un "bound method" que
es lo que quiero que sea.
Se puede simular un bound method con un objeto del tipo
functools.partial, pero me gustaria saber si existe la posibilidad de
convertir una funcion a "bound method".
>>> c.f = f1.__get__(c)
>>> c.f()
version 2
Saludos,
--
Oswaldo Hernández
_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/