在闭括号前/,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. ...
它象征着结束位置唯一参数,参数,你不能作为关键字参数使用。这些参数只能在C API中指定。
这意味着keyto 的参数__contains__只能通过position(range(5).__contains__(3))传递,而不能作为关键字参数(range(5).__contains__(key=3))传递,这可以通过pure-python函数中的position参数来完成。
__contains__
position(range(5).__contains__(3))
(range(5).__contains__(key=3))
另请参阅Argument Clinic文档:
要将所有参数标记为Argument Clinic中的“仅位置”,请/在最后一个参数之后单独添加一行,并使其与参数行缩进。
Argument Clinic
和(最近添加的)Python FAQ:
函数的参数列表中的斜杠表示该函数之前的参数仅是位置参数。仅位置参数是没有外部可用名称的参数。调用仅接受位置参数的函数后,参数将仅基于其位置映射到参数。
从3.8版开始,该语法现已成为Python语言规范的一部分,请参阅PEP 570 – 仅Python位置参数。在PEP 570之前,该语法已被保留以供将来将来包含在Python中,请参阅PEP 457- 仅位置参数的语法。
仅位置参数可以导致更清晰的API,使原本仅C的模块的纯Python实现更加一致且易于维护,并且由于仅位置参数需要很少的处理,因此它们可以导致更快的Python代码。