如何迭代不同的夸克?

2024-10-02 14:22:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我觉得这个问题以前肯定有人问过,但我没找到,如果是这样的话,对不起!在

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

def f(arg1, arg2, ...,argN, kw1=0, kw2=0, kw3=0):
    # some code ...

假设我定义了我的(强制性)论点:

^{pr2}$

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

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')
...

看起来像:

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

但语法上是正确的。Python的正确方法是什么?在


Tags: 函数参数定义defcodesomearg1arg2
2条回答

使用字典:

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

使用partial functions。在

假设您有一个具有此签名的函数:

def f(arg1, arg2, arg3, kw1, kw2, kw3):
    pass

您可以缩短具有arg1arg2kw1kw2的公共值的调用,如下所示:

^{pr2}$

f_short的调用等同于下面的直接调用:

f(1, 2, 3, kw1="A", kw2="B", kw3="C")

相关问题 更多 >