我已经编写了一个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。不过,我还没能通过随意的谷歌搜索找到它。有什么想法吗?