我写了一个看起来像这样的装饰师
def login_required_message(*args, **kwargs):
kwargs.setdefault('message', "You must be logged in to do that.")
return _user_passes_test_message(lambda u: u.is_authenticated(), *args, **kwargs)
但是当我试图在结尾没有()
的情况下使用它,它就会失败,除非我这样重写它:
那么()
是可选的。那么,如何将这个“可选”功能封装到一个decorator中,这样我就可以装饰我的decorator而不允许参数呢?在
我最近写了一篇关于这方面的文章,至少,我认为它解决了你想做的事情。对于子孙后代,我想到的是:
顺便说一句,在想办法解决这个问题的过程中,我得出了一个结论:这是一件几乎总是比必要的复杂得多的事情;—)
相关问题 更多 >
编程相关推荐