可能有重复:
Python有任何AOP支持库吗?
我熟悉Java语言的AspectJ
扩展。
我想知道Python是否有类似的东西。
别误会,我的意思不是库,而是像Java中的AspectJ
一样的语言扩展。
可能有重复:
Python有任何AOP支持库吗?
我熟悉Java语言的AspectJ
扩展。
我想知道Python是否有类似的东西。
别误会,我的意思不是库,而是像Java中的AspectJ
一样的语言扩展。
Python不需要像“语言扩展”这样的东西,就能以面向方面的方式工作。
这仅仅是由于Python本身的动态机制。通过谷歌搜索可得,会有几个项目-但尽管看起来只是库,但在Python中这就足够了。
我并没有撒谎-这是事实,你可以检查类和方法,并在运行时更改它们。当我第一次了解面向方面编程时,我可以在Python中实现一些概念证明,只需要几个小时的时间-当然,现有的一些项目可以提供生产质量的条目。
但既然你问了,有一种类似于Python“语言扩展”的东西可以用于面向方面编程:当我做上述概念验证时,我使用运行时检查方法的输入参数,以确定是否应将某些方法受到规则的影响。
在Python 3中,语言有一个鲜为人知的特性,允许注释函数或方法的输入参数和返回值。面向方面编程库可以利用这个特性,在“加载时”应用其魔法,而不是在每个函数调用时。
顺便说一下,这是我快速使用纯Python使用面向方面编程的示例。抱歉-代码注释是pt_BR- https://github.com/jsbueno/metapython/blob/main/aspect.py
Spring Python
链接: http://docs.spring.io/spring-python/1.2.x/sphinx/html/aop.html#aspect-oriented-programming