【发布时间】:2014-10-15 05:40:45
【问题描述】:
我正在尝试弄清楚如何编写一个装饰器来检查函数是否是使用特定的可选参数调用的。这可能不是检查参数的pythonic方式,但无论如何我都想知道使用装饰器的解决方案。这是我正在寻找的示例:
@require_arguments("N", "p") # Question here
def g(x,*args,**kwargs):
if "N" not in kwargs: raise SyntaxError("missing N")
if "p" not in kwargs: raise SyntaxError("missing p")
print x
g(3,N=2) # Raise "missing p"
如何编写会引发相应错误的装饰器@require_arguments(*args)?
【问题讨论】:
-
"... 引发 适当的错误" 可能是
TypeError,因为这是 Python 因函数调用中缺少参数而引发的异常?
标签: python decorator optional-parameters python-decorators