2 回答

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊
您不能同時(shí)使用 varargs 參數(shù)和特殊*
參數(shù)來指示位置參數(shù)后面的僅關(guān)鍵字參數(shù)。PEP-3102引入了僅關(guān)鍵字語法,表示:
第二個(gè)語法更改是允許省略 varargs 參數(shù)的參數(shù)名稱。其含義是允許函數(shù)使用僅關(guān)鍵字參數(shù),否則不會(huì)采用 varargs 參數(shù)。
(強(qiáng)調(diào)我的)。
您可以擁有*
或*args
,但不能同時(shí)擁有兩者。特殊參數(shù)的要點(diǎn)*
是,當(dāng)您還沒有 varargs 參數(shù)時(shí),允許您擁有僅關(guān)鍵字參數(shù)。

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
*
不是“僅在此指示符之后的關(guān)鍵字”。**
參數(shù)后面列出的非參數(shù)*
僅是關(guān)鍵字。例如,在以下函數(shù)中:
def f(*args, x): ...
x
僅限關(guān)鍵字。
如果您不希望函數(shù)采用*args
,則可以使用 bare*
來標(biāo)記僅關(guān)鍵字參數(shù)的開始,但如果您確實(shí)想要*args
,則僅關(guān)鍵字參數(shù)將在其后。
添加回答
舉報(bào)