gpt4 book ai didi

条件参数传递的 Pythonic 解决方案

转载 作者:IT老高 更新时间:2023-10-28 20:40:33 25 4
gpt4 key购买 nike

我有一个带有两个可选参数的函数:

def func(a=0, b=10):
return a+b

在我的代码的其他地方,我正在做一些条件参数传递,例如:

if a and b:
return func(a, b)
elif a:
return func(a)
elif b:
return func(b=b)
else:
return func()

有没有办法简化这种模式的代码?

编辑:

假设我不允许func 中实现默认参数逻辑。

我可能有几个函数,例如 func:func1func2func3 都包含

a = a or 0
b = b or 10

声明。

但我正在调用这一系列函数来消除重复。 (使用装饰器)

最佳答案

如果您不想更改 func 中的任何内容,那么明智的选择是将参数的字典传递给函数:

>>> def func(a=0,b=10):
... return a+b
...
>>> args = {'a':15,'b':15}
>>> func(**args)
30
>>> args={'a':15}
>>> func(**args)
25
>>> args={'b':6}
>>> func(**args)
6
>>> args = {}
>>> func(**args)
10

或者只是:

>>>func(**{'a':7})
17

关于条件参数传递的 Pythonic 解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11185516/

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