python - 知道函数不接受来自文档字符串的命名参数
问题描述
大家好,
我很困惑我应该如何知道一个函数是否可以接受来自文档字符串的命名参数。这是一个例子:
from functools import reduce
?reduce
从这个文档中,我的直觉是使用这样的功能:
reduce(
function = lambda x, y: x+y,
sequence = [1, 2, 3, 4, 5]
)
但是,我们得到:
我怎么知道这会从文档字符串中发生?来自另一种语言,似乎文档告诉我这两个争论被称为function
and sequence
。
谢谢
解决方案
一般来说,没有严格的规定(据我所知)。文档不能引发语法错误:)
有一个标记, 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
)。我建议检查此答案以获取更多信息。
推荐阅读
- android - 我想突出显示 ArrayList 的单个单词
- jsp - 如何使用jsp中的post方法将隐藏的表单字段传递给servlet过滤器的doFilter方法?
- javascript - 如何在 React js 中修复“相同的道具传递给孩子”?
- performance - LINQ AsNoTracking 运行缓慢
- servicestack - 覆盖特定端点上的 AutoQuery MaxLimit
- javascript - 从其他组件中的服务访问数据
- c++ - 如果参数不是引用,如何防止编译传递的 lambda
- reactjs - 使用 webpack 的 React Semantic-ui 包大小太大
- bash - AWK 中的条件
- ios - 再次出现视图时不调用drawRect