跟java一样, 在不修改源码的情况,对某个方法进行前置 和 后置 功能添强
class Old(): def do_sth(self): print('do something....') class MiddleWare(): def __init__(self,old): self.old = old def __call__(self, *args, **kwargs): print('在Old#do_sth方法之前做一些事,前置增强') ret = self.old(*args,**kwargs) print('在Old#do_sth方法之后做一些事,前置增强') return ret if __name__ == '__main__': old1= Old() old1.do_sth() print('---------------通过MiddleWare类对do_sth方法进行功能添强-------------------') old= Old() old.do_sth = MiddleWare(old.do_sth) old.do_sth()