gpt4 book ai didi

python - 如何在 python 中检查指定函数的至少一个默认参数

转载 作者:太空狗 更新时间:2023-10-29 21:30:50 25 4
gpt4 key购买 nike

在 python 中检查是否至少指定了函数的默认参数之一的最佳做法是什么?

假设我们有一些函数:

def some_function(arg_a=None, arg_b=None, arg_c=False)

带有一些默认参数。就我而言,我需要检查是否指定了 arg_aarg_b。所以我想实现这样的事情:

def some_function(arg_a=None, arg_b=None, arg_c=False):
...
if arg_a is not None:
...
elif arg_b is not None:
...
else:
raise ValueError('Expected either arg_a or arg_b args')
...
...

那么,实现此类功能的更多 pythonic 方法是什么?

最佳答案

您可以使用 all 检查它们是否都等于 None 并引发 ValueError:

if all(v is None for v in {arg_a, arg_b}):
raise ValueError('Expected either arg_a or arg_b args')

这摆脱了那些 if-elif 子句并将所有检查分组在同一个地方:

f(arg_a=0) # ok    
f(arg_b=0) # ok
f() # Value Error

或者,使用 any():

if not any(v is not None for v in {arg_a, arg_b}):
raise ValueError('Expected either arg_a or arg_b args')

但这肯定更加混淆。

最后,这真的取决于 pythonic 的实际解释是什么。

关于python - 如何在 python 中检查指定函数的至少一个默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38881888/

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