wrapping a method function call?

mh at pixar.com mh at pixar.com
Mon Nov 3 03:17:02 EST 2008


I am instantiating a class A (which I am importing from somebody
else, so I can't modify it) into my class X.

Is there a way I can intercept or wrape calls to methods in A?
I.e., in the code below can I call

   x.a.p1()

and get the output

    X.pre
    A.p1
    X.post

Many TIA!
Mark


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()

-- 
Mark Harrison
Pixar Animation Studios



More information about the Python-list mailing list