gpt4 book ai didi

python - 有条件地将命名关键字参数传递给函数

转载 作者:行者123 更新时间:2023-12-01 15:07:00 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Pythonic way to pass keyword arguments on conditional

(4 个回答)


3年前关闭。




我不确定我在我的问题中是否使用了正确的措辞,但我遇到的情况是我正在调用一个函数并将一个值传递给它的命名关键字参数之一,只有当我有一个值时。我目前如何做的一个简化示例:

var_1 = data.get("var_1", None)

if var_1:
some_function(some_arg=var_1)
else:
some_function()

函数 some_function()不接受设置 some_arg到 None 所以我只能使用命名参数调用函数,如果我有一个有效的值。

以上对我来说不太理想的原因是我正在执行的实际函数调用有一堆(5+)我设置的命名参数。这会导致重复大多数相似的函数调用,这些函数调用只有一个参数不同。

有没有更好的方法/更 Pythonic 的方法来做到这一点?我希望我可以调用该函数并设置我可能希望传递的所有可能的命名参数,但是在运行时,只传递我实际需要的值。

万一重要,函数调用是对 AWS Python SDK (Boto3) 的,所以我不能改变函数的行为。

最佳答案

你可以做的是:

var_1 = data.get("var_1", None)
fun_kwargs = {'some_arg': var_1} if var_1 else {}
some_function(**fun_kwargs)

如果你有多个参数,你可以这样做:
fun_kwargs = {}
if var1: fun_kwargs['some_arg1'] = var_1
if var2: fun_kwargs['some_arg2'] = var_2
if var3: fun_kwargs['some_arg3'] = var_3
some_function(**fun_kwargs)

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

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