aspectlib是一个第三方的python库,提供了一种便捷的aop拦截方法,下面介绍其使用方法。
首先需要安装aspectlib库,执行命令 pip install aspectlib。
下面的代码是拦截系统的open方法,在调用open之前打印出文件名:
import aspectlib
@aspectlib.Aspect
def mock_open(*param):
print('open file:'+param[0])
result = yield aspectlib.Proceed
yield aspectlib.Return(result)
if __name__ == "__main__":
with aspectlib.weave(open, mock_open):
open('/user/local/test.data')
上面的代码中定义了一个增强方法mock_open,并且通过aspectlib.weave织入该增强至切面中,mock_open中的Proceed调用了open的原生实现并返回结果。