Как перехватывать вызовы метода экземпляра?

Я ищу способ перехвата вызовов метода экземпляра в классе MyWrapper ниже:

class SomeClass1:
    def a1(self):
        self.internal_z()
        return "a1"
    def a2(self):
        return "a2"
    def internal_z(self):
        return "z"

class SomeClass2(SomeClass1):
    pass

class MyWrapper(SomeClass2):

    # def INTERCEPT_ALL_FUNCTION_CALLS():
    #      result = Call_Original_Function()
    #      self.str += result  
    #      return result  


    def __init__(self):
        self.str = ''
    def getFinalResult(self):
        return self.str

x = MyWrapper()
x.a1()
x.a2()

Я хочу перехватить все вызовы функций make через мой класс-оболочку. В моем классе-оболочке я хочу отслеживать все строки результатов.

result = x.getFinalResult()
print result == 'a1a2'
12
задан dreftymac 5 April 2017 в 23:05
поделиться