擅长:python、mysql、java
<p>如果您希望包装器的签名仍然是<code>(request, *args, **kwargs)</code>,那么没有任何合理的方法可以做到这一点。另一方面,看起来您的decorator已经假定包装函数接受一个<code>key</code>参数,那么为什么不重写包装器也接受一个呢?在这种情况下,检查它是否通过就变得无关紧要了。在</p>
<pre><code>def validate(f):
@wraps(f)
def redirect_if_invalid(request, key=None):
# do the validation
if key is None:
key = request.key
return f(request, key)
return redirect_if_invalid
</code></pre>
<p>当然,如果您愿意,可以添加<code>*args</code>和<code>**kwargs</code>参数。在</p>