[英]What is the " / " in the built-in list function descriptions
内置列表 function 描述的末尾是“/”。 它是什么?
>>> l=[]
>>> help(l.insert)
Help on built-in function insert:
insert(index, object, /) method of builtins.list instance
Insert object before index.
>>> help(l.index)
Help on built-in function index:
index(value, start=0, stop=9223372036854775807, /) method of builtins.list instance
Return first index of value.
请注意,如果斜线(/)出现在 function 的参数列表中,则在调用 help() 时,这意味着斜线之前的参数是仅位置参数。
以及来自positional-only parameters 的 FAQ 条目:
一个function的参数列表中的斜杠(/)是什么意思?
function 的参数列表中的斜杠表示它之前的参数仅是位置参数。 仅位置参数是没有外部可用名称的参数。 在调用接受仅位置参数的 function 时,arguments 将映射到仅基于其 position 的参数。例如,divmod() 是接受仅位置参数的 function。 它的文档如下所示:
>>> help(divmod)
Help on built-in function divmod in module builtins:
>
> divmod(x, y, /)
> Return the tuple (x//y, x%y). Invariant: div*y + mod == x.
参数列表末尾的斜杠表示两个参数都是位置参数。 因此,使用关键字 arguments 调用 divmod() 会导致错误:
>>> divmod(x=3, y=4)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: divmod() takes no keyword arguments
Python中有3种参数:
在定义 function 时,使用/
分隔左侧的仅位置参数(至少一个)和右侧的 rest。 如果参数列表中没有/
,则没有位置参数。
语法起源于参数 clinic,它用于为 CPython 实现定义函数。 在 PEP-570 中将其添加到 Python 本身的语法之前,它的使用出现在此类函数的帮助中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.