一尘不染

Python:斜线在help()输出中意味着什么?

python

在闭括号前/,Python 3.4的help输出是什么意思range?

>>> help(range)
Help on class range in module builtins:

class range(object)
 |  range(stop) -> range object
 |  range(start, stop[, step]) -> range object
 |  
 |  Return a virtual sequence of numbers from start to stop by step.
 |  
 |  Methods defined here:
 |  
 |  __contains__(self, key, /)
 |      Return key in self.
 |  
 |  __eq__(self, value, /)
 |      Return self==value.

                                        ...

阅读 521

收藏
2020-02-16

共1个答案

一尘不染

它象征着结束位置唯一参数,参数,你不能作为关键字参数使用。这些参数只能在C API中指定。

这意味着keyto 的参数__contains__只能通过position(range(5).__contains__(3))传递,而不能作为关键字参数(range(5).__contains__(key=3))传递,这可以通过pure-python函数中的position参数来完成。

另请参阅Argument Clinic文档:

要将所有参数标记为Argument Clinic中的“仅位置”,请/在最后一个参数之后单独添加一行,并使其与参数行缩进。

和(最近添加的)Python FAQ:

函数的参数列表中的斜杠表示该函数之前的参数仅是位置参数。仅位置参数是没有外部可用名称的参数。调用仅接受位置参数的函数后,参数将仅基于其位置映射到参数。

从3.8版开始,该语法现已成为Python语言规范的一部分,请参阅PEP 570 – 仅Python位置参数。在PEP 570之前,该语法已被保留以供将来将来包含在Python中,请参阅PEP 457- 仅位置参数的语法。

仅位置参数可以导致更清晰的API,使原本仅C的模块的纯Python实现更加一致且易于维护,并且由于仅位置参数需要很少的处理,因此它们可以导致更快的Python代码。

2020-02-16