我想了解如何將參數傳遞給該function
解釋:蟒蛇位置參數
def f(a, *, b):
return a, b
看來這function
強制主叫方撥打f()
與正好2 PARAMS和第二PARAM應該永遠是一個名爲b=
param。我如何從function
簽名中解密這個?爲什麼它不允許我爲*
指定中間參數?
我想了解如何將參數傳遞給該function
解釋:蟒蛇位置參數
def f(a, *, b):
return a, b
看來這function
強制主叫方撥打f()
與正好2 PARAMS和第二PARAM應該永遠是一個名爲b=
param。我如何從function
簽名中解密這個?爲什麼它不允許我爲*
指定中間參數?
我如何從函數簽名中解密這個?
*
之後的參數必須通過關鍵字傳遞,如果它們完全通過的話。*
,除非參數名稱附帶*
。由於b
沒有默認值,所以必須通過。由於它在*
之後,因此必須通過關鍵字傳遞。由於*
是「裸」(即,它只是*
佔位符,而不是像*args
這樣的可變參數),因此不能將其他位置參數作爲「中間」參數傳遞。
請參閱PEP 3102瞭解關鍵字參數語法的描述。
單獨使用*
是一種Python3唯一的方式來表達以下參數是命名參數,並且只能傳遞給函數。
參數後「
*
」或「*identifier
」是關鍵字唯一參數,並且可以僅被傳遞使用關鍵字參數。
很好的解釋,我比官方文檔更好地理解它。 – user3079275