Python:模拟包装类函数的Wrapper类调用

时间:2017-01-25 13:36:05

标签: python

我想创建一个类,它将成为另一个类的包装器,并维护有关包装类执行的信息。例如,我想监视调用包装类中每个方法的次数。但是我希望包装器感觉就像被包装的类一样。

要做到这一点,我希望行wrapper.foo(arg1="value1", arg2="value2")将调用:

def execute(self, function_name, args):
    # function_name = "foo"
    # args = {"arg1": "value1", "arg2": "value2"}

    self.call_counter[function_name] += 1
    return getattr(self.wrapped_class, function_name)(**args)

我希望以某种方式__getattr__能够正常工作,但如果我想传递参数,那也无法发挥作用。

如何实现透明的包装效果?

0 个答案:

没有答案