首页 > 解决方案 > 知道函数不接受来自文档字符串的命名参数

问题描述

大家好,

我很困惑我应该如何知道一个函数是否可以接受来自文档字符串的命名参数。这是一个例子:

from functools import reduce
?reduce

在此处输入图像描述

从这个文档中,我的直觉是使用这样的功能:

reduce(
   function = lambda x, y: x+y, 
   sequence = [1, 2, 3, 4, 5]
   )

但是,我们得到:

在此处输入图像描述

我怎么知道这会从文档字符串中发生?来自另一种语言,似乎文档告诉我这两个争论被称为functionand sequence

谢谢

标签: pythondocstring

解决方案


一般来说,没有严格的规定(据我所知)。文档不能引发语法错误:)

有一个标记, the *,表示它后面的所有参数都是关键字参数,它是这样的:

func(arg1, arg2, *, kwarg1, kwarg2)

它的使用不仅在文档中,而且在真正的可调用函数中。您也可以将其合并到您自己的定义中。

在文档字符串中使用这种模式也很常见:

func(arg1, arg2, arg3=default_value, **kwargs)
# kwarg_a: description of kwarg_a
# kwarg_b: description of kwarg_b
# kwarg_c: description of kwarg_c

所以,有一些指导方针。通常,我们可以假设参数是位置参数,除非明确指出是关键字(例如在您的示例中reduce)。我建议检查此答案以获取更多信息。


推荐阅读