Python 官方文档:入门教程 => 点击学习
Java中的aop可以用jdk的动态代理和cglib来实现,将需要拦截的方法前后可以额外添加些功能。 python中有许多方法去实现AOP,现在先介绍第一种比较简单的: 1)利用with...as... Python的with.
Java中的aop可以用jdk的动态代理和cglib来实现,将需要拦截的方法前后可以额外添加些功能。
python中有许多方法去实现AOP,现在先介绍第一种比较简单的:
1)利用with...as...
Python的with...as...子句是用于控制执行流程的语句,结构是with expression as variable,这里的expression里定义拦截的方法前后需要执行的逻辑,分别定义“__enter__”和“__exit__”方法,“__enter__”方法定义拦截方法执行前的逻辑,“__exit__”方法定义拦截方法执行后的逻辑,with...as...子句的主体是拦截的方法执行的逻辑,variable变量是用来接收“__enter__”方法返回的值,下面来看个示例:
before action enter
AOPValue is 1
Myfunction() called and processed
Myfunction1() called and processed
after action enter
PS:with子句中的variable接收的是__enter__方法的返回值。这是with子句的基本用法
2)利用contextlib实现AOP
Python核心库中的contextlib中的contextmanager来实现AOP就非常简单了,contextmanager是一个装饰器,具体用法如下示例:
--结束END--
本文标题: Python实现自己的AOP
本文链接: https://lsjlt.com/news/185442.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0