我试图了解如何function
解释此参数:
def f(a, *, b):
return a, b
看来这function
会强制调用者f()
使用 2 个参数进行调用,而第二个参数应该始终是命名b=
参数。我如何从function
签名中破译这个?为什么它不允许我为 指定中间参数*
?
我试图了解如何function
解释此参数:
def f(a, *, b):
return a, b
看来这function
会强制调用者f()
使用 2 个参数进行调用,而第二个参数应该始终是命名b=
参数。我如何从function
签名中破译这个?为什么它不允许我为 指定中间参数*
?
我如何从函数签名中破译这个?
*
必须通过关键字传递,如果它们被传递的话。*
名称伴随*
.由于b
没有默认值,因此必须通过。因为它在它之后,*
所以它必须通过关键字传递。由于*
是“裸露的”(即,它只是*
占位符而不是 vararg 之类的*args
),因此不能将其他位置参数作为“中间”参数传递。
有关仅关键字参数语法的描述,请参见PEP 3102。
only 是一种仅限 Python3的*
方式来表示以下参数是命名参数,并且只能按原样传递给函数。
“<code>*”或“<code>*identifier”之后的参数是关键字参数,只能传递使用过的关键字参数。