gpt4 book ai didi

python - 有条件地将任意数量的默认命名参数传递给函数

转载 作者:太空狗 更新时间:2023-10-29 18:21:39 26 4
gpt4 key购买 nike

是否可以有条件地将任意数量的命名默认参数传递给 Python 函数?

例如。有一个函数:

def func(arg, arg2='', arg3='def')

现在逻辑是我有一个条件来确定是否需要传递 arg3,我可以这样做:

if condition == True:
func('arg', arg2='arg2', arg3='some value')
else:
func('arg', arg2='arg2')

问题是,我可以使用这样的速记吗:

func('arg', 'arg2', 'some value' if condition == True else # nothing so default gets picked
)

最佳答案

我能想到的唯一办法就是

func("arg", "arg2", **({"arg3": "some value"} if condition == True else {}))

func("arg", "arg2", *(("some value",) if condition == True else ()))

但请不要这样做。使用您自己提供的代码,或类似这样的代码:

if condition:
arg3 = "some value",
else:
arg3 = ()
func("arg", "arg2", *arg3)

关于python - 有条件地将任意数量的默认命名参数传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4670665/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com