【发布时间】:2014-09-17 12:10:56
【问题描述】:
我有一个带有许多参数的函数 my_f(其中一些可以是可选的),例如,
def my_f(a, b, opt_arg = 3):
#do some stuff
现在我想为这个函数写一些装饰器,它会根据可选参数 opt_arg 做一些简单的事情。我不知道 my_f 的参数数量,但我知道可选参数的名称。我怎么能做到这一点?是否有可能使my_f(1,2, opt_arg=3) 和my_f(opt_arg =3, 1,2,3,4) 两种变体都能正常工作?
【问题讨论】:
-
我相信
my_f(opt_arg =3, 1,2,3,4)是一个 SyntaxError 无论你如何尝试装饰它。 -
可以看到元组
my_f.func_defaults中的默认值。 -
@jonrsharpe:OP 并没有在这里要求自省..
标签: python python-2.7 decorator python-decorators