【发布时间】:2010-10-12 06:24:23
【问题描述】:
如果我有以下功能:
def intercept(func):
# do something here
@intercept(arg1=20)
def whatever(arg1,arg2):
# do something here
我希望仅在 arg1 为 20 时触发拦截。我希望能够将命名参数传递给函数。我怎么能做到这一点?
这是一个小代码示例:
def intercept(func):
def intercepting_func(*args,**kargs):
print "whatever"
return func(*args,**kargs)
return intercepting_func
@intercept(a="g")
def test(a,b):
print "test with %s %s" %(a,b)
test("g","d")
这会引发以下异常 TypeError: intercept() got an unexpected keyword argument 'a'
【问题讨论】:
标签: python language-features decorator