关于python:仅关键字参数

Keyword only parameter

参考http:/ / / / glossary.html # docs.python.org 3项参数

关键字:只读参数应该提醒的论据,可以只由指定的关键字。关键字参数可以定义只包括A单或裸* VAR定位参数在参数列表的函数定义之前他们,例如,一_千瓦千瓦和_参加在下面:

1
def func(arg, *, kw_only1, kw_only2):

而不是单一的定位参数VaR不单参数var关键字吗?也许我理解什么事了……


不,您必须使用*裸参数,或者使用单个*args参数,称为var位置参数(请参阅该词汇表条目中的下一项)。通过将其添加到函数签名中,可以强制后面的任何参数都是仅关键字参数。

所以函数签名可以是:

1
def func(positional_arg1, *variable_args, kw_only1, kw_only2):

并且variable_args将捕获传递给函数的任何额外位置参数,或者您可以使用:

1
def func(positional_arg1, *, kw_only1, kw_only2):

函数将不支持第一个以外的额外位置参数。

在这两种情况下,只有在调用func()时将它们用作关键字参数,才能设置kw_only1kw_only2。如果没有默认值(定义中没有=),它们仍然是必需的参数。