在python装饰器中包装操作

时间:2014-10-20 17:23:06

标签: python

我已经编写了一个python library,允许用户使用绑定到它们的逻辑运算符创建对象,然后可以将其用作装饰器。例如:

edit_need = owner_need | admin_need

@edit_need
def edit():
    # Raise an error if the need is not met.

将它简化为:

会很高兴
@(owner_need | admin_need)
def edit():
    # ...

当然这会引发语法错误。使用额外的装饰器可以完成同样的事情,例如:

def decorator(dec):
    @wraps(dec)
    def adapt(f):
        return dec(f)
    return adapt

@decorator(owner_need | admin_need)
def edit():
    # ...

但是,这感觉就像有一个内置的python。不过,我还没能通过随意的谷歌搜索找到它。有什么想法吗?

0 个答案:

没有答案