它意味着
positional only
parameters
,参数
不能
用作关键字参数。这样的参数只能在C API中指定。
这意味着
key
论证
__contains__
只能通过位置传递(
range(5).__contains__(3)
),而不是作为关键字参数(
range(5).__contains__(key=3)
),一些你
可以
在纯python函数中使用位置参数。
也看到
Argument Clinic
文档:
若要在参数诊所中将所有参数标记为仅位置参数,请添加
/
在最后一个参数之后的一行上,缩进与参数行相同的行。
以及
Python FAQ
:
函数的参数列表中的斜线表示其前面的参数仅为位置参数。仅位置参数是没有外部可用名称的参数。调用只接受位置参数的函数时,参数将仅基于其位置映射到参数。
还为将来可能包含在python中定义了语法,请参见
PEP 457 -
Syntax For Positional-Only Parameters
.
这股精神最近恢复了,并且
accepted for inclusion in Python
. 由于python 3.8仍处于alpha阶段,因此在该版本中或在3.9中它可能成为现实,这取决于速度
the reference implementation
可以敲定。
只有位置的参数可以导致更干净和更清晰的API,使纯的Python实现,否则只有C的模块更一致和更容易维护,并且因为位置参数只需要很少的处理,它们导致更快的Python代码。