我正试图在我的Python编程中使用一些AOP,但我对现有的各种库没有任何经验。
所以我的问题是:
What AOP support exists for Python? And what are the advantages of the differents libraries between them?
号编辑
我发现了一些,但我不知道它们是如何比较的:
异步CT
针对python的轻量级AOP
编辑2
在哪种情况下我将使用这些?
我有两个用python编写的应用程序,它们通常有计算税收和其他货币的方法。我希望能够编写一个功能的"框架",并在运行时对其进行自定义,例如更改应用地方税的方式(按国家、州或城市等),而不必使整个堆栈过载。
请参阅s.lott关于python decorators的链接以获得一些很好的示例,并参阅decorators的定义PEP。
Python从一开始就有AOP,只是没有一个令人印象深刻的名字。在python 2.4中添加了decorator语法,这使得在语法上应用decorator非常好。
如果您希望根据规则应用装饰器,可能需要一个库,但是如果您愿意在声明相关函数/方法时标记它们,则可能不需要。
下面是一个简单缓存装饰器的示例(我为这个问题编写了它):
import pickle, functools
def cache(f):
_cache = {}
def wrapper(*args, **kwargs):
key = pickle.dumps((args, kwargs))
<