python - Python 中强制关键字参数的默认参数的用途是什么?

标签 python python-3.x

我遇到过一个包,它始终具有以下形式的功能:

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/

相关文章:

python - 传递未知编码的字符数组

python - 模块未找到错误 : No module named 'torch.utils.serialization'

python - popen完成后做一些事情

python - 如何防止索引旋转?

python - 如何用其子级替换跨度并对 BeautifulSoup 中的内部文本执行正则表达式

Python 转换为 %Y-%m-%d %H :%M With Different Length Strings

python - 使用 python WeakSet 启用回调功能

python - 缺少外部依赖项的哪个异常?

c - 将 "adress"作为函数参数传递 - Python 3

python - 如何在python 3中使用给定的两个页面输入来搜索每个页面