我遇到过一个包,它始终具有以下形式的功能:
def function(
arg1,
arg2,
*,
arg3=None,
arg4=None,
...
argN=None
)
我试图理解强制关键字参数(如果它们有默认值)的目的。具体来说,有两种情况:
场景 1:未提供关键字参数。如果没有默认值,这会引发错误,但如果使用默认值,该函数将具有与没有强制的情况下相同的行为。
场景 2:提供了关键字参数,再次产生与没有强制的情况下相同的行为。
这种方法是否有我遗漏/不理解的地方?所有强制参数都有默认值。
谢谢!
最佳答案
它不会强制您提供参数,但会强制您在传递关键字参数名称时显式提供它。因此 function(1, 2, 3)
将不起作用,因为您必须显式指定 arg3
,即 function(1, 2, arg3=3)
。除此之外,行为保持不变。
当开发人员意识到如果不明确说明给定函数的关键字参数名称可能/将会使稍后阅读代码的开发人员感到困惑时,通常会使用它。
关于python - Python 中强制关键字参数的默认参数的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72817303/