estoy crear instancias de una clase A (que estoy importando de alguien más, así que no se puede modificar) en mi clase X.Python: envolver las llamadas a métodos con los métodos de pre y post
¿Hay una manera Puedo interceptar o ajustar llamadas a métodos en A? es decir, en el código de abajo puede llamar me
x.a.p1()
y obtener la salida
X.pre
A.p1
X.post
Muchos TIA!
class A:
# in my real application, this is an imported class
# that I cannot modify
def p1(self): print 'A.p1'
class X:
def __init__(self):
self.a=A()
def pre(self): print 'X.pre'
def post(self): print 'X.post'
x=X()
x.a.p1()
cierto, pero me gustaría evitar ya que mi programa real incluye muchas más instancias de clase de las que me gustaría envolver. –
Bueno, llama al envoltorio igual, pero ponlo en tu propio espacio de nombres. Funcionará efectivamente como un reemplazo directo, y no es necesario que cambie su código. – Tomalak