Python中的面向方面编程(AOP)

可能重复:
任何Python的AOP支持库?

我熟悉Java语言的AspectJ扩展。

我想知道Python是否有这样的事情。

不要误解我的意思,我不是指一个库,而是像AspectJ这样的语言扩展对Java。


Python不需要像“语言扩展”那样能够以面向方面的方式工作。

这仅仅是由于Python本身的动态机制。 谷歌搜索将产生一些项目 - 尽管看起来只是像库,但它是Python所需要的。

我没有这样做 - 这是事实,你可以反省类和方法,并在运行时改变它们。 当我第一次了解Aspect Orientation时,我可以在几个小时内用Python实现一些概念验证 - 当然,一些现有的项目可以提供生产质量的条目。

但是,既然你问了,有一种Python可以用于Aspect Orientation的“语言扩展”:当我做了上面提到的概念证明时,我曾经在运行时检查输入参数以确定是否某些方法会受规则或不规则的影响。

在Python 3中,该语言的一个已知特征允许注释输入参数并返回函数或方法的值。 一个方面定位库可以利用它来在“加载时间”应用它的魔法,而不是在每次函数调用时。

顺便说一句,这里是我的快速入门,以获得一个在纯Python中使用Aspect Orientation的工作示例。 对不起 - 代码注释在pt_BR - https://bitbucket.org/jsbueno/metapython/src/f48d6bd388fd/aspect.py


你可以使用Spring Python

链接:http://docs.spring.io/spring-python/1.2.x/sphinx/html/aop.html#aspect-oriented-programming

链接地址: http://www.djcxy.com/p/95171.html

上一篇: Aspect oriented programming (AOP) in Python

下一篇: Aspect Oriented Programing (AOP) solutions for C# (.Net) and their features