动态定义函数的(关键字)参数?

时间:2015-10-15 20:34:29

标签: python function metaprogramming

是否可以动态定义函数的关键字参数?

通常你会有这样的事情:

def f(a=None, b=None):
    return locals()

我想要的是用dict中的关键字args定义一个函数;所以这将提供与上面相同的功能:

dyn_args = {'a': None, 'b': None}
def f(?magic(dyn_args)?):
    return locals()

原因是我希望函数只接受与namedtuple的字段匹配的kwargs,以及其他任何内容的错误。该函数应该与几个不同的命名元组一起使用(如果它们发生了变化),并且我想保持干燥。我可以用kwargs和验证解决这个问题,但大多数情况下我只是好奇 - 欢迎肮脏的黑客。

0 个答案:

没有答案