如何迭代不同的kwargs?

Jul*_*ien 2 python kwargs

我觉得以前一定要问过这个问题,但我找不到,对不起,如果是这样的话!

我有一个不同参数的函数,如:

def f(arg1, arg2, ...,argN, kw1=0, kw2=0, kw3=0):
    # some code ...
Run Code Online (Sandbox Code Playgroud)

假设我定义了我的(强制性)参数:

arg1 = some_value_1
arg2 = some_value_2
...
argN = some_value_N
Run Code Online (Sandbox Code Playgroud)

我想浓缩一些重复的函数调用,如

f(arg1, arg2, ... argN, kw1=1)
f(arg1, arg2, ... argN, kw1=23)
f(arg1, arg2, ... argN, kw2=456)
f(arg1, arg2, ... argN, kw2=789)
f(arg1, arg2, ... argN, kw3='a')
f(arg1, arg2, ... argN, kw3='b')
...
Run Code Online (Sandbox Code Playgroud)

看起来像:

for kw_def in [kw1=1, kw1=23, kw2=456, kw2=789, kw3='a', kw3='b',...]:
    f(arg1, arg2, ... argN, kw_def)
Run Code Online (Sandbox Code Playgroud)

但语法上正确.什么是正确的pythonic方式?

Dan*_*iel 6

使用词典:

for kw_def in [
    {'kw1': 1},
    {'kw1': 23},
    {'kw2': 456},
]:
    f(arg1, ..., argN, **kw_def)
Run Code Online (Sandbox Code Playgroud)