為什麼在預設參數之後宣告非預設參數是非法的?
在 Python 中,遵循正確的參數順序至關重要定義函數時。非預設參數必須位於任何預設參數之前。這個限制源自於這樣一個事實:必需的參數必須在可選參數(預設參數)之前指定。
SyntaxError: Non-Default Argument Follows Default Argument
出現此錯誤當您在預設參數之後聲明帶有非預設參數的函數時,如下所示例如:
意外的賦值問題
混合預設和非預設參數會導致語法歧義。讓我們考慮使用上述函數的函數呼叫:
在這種情況下解釋器不可能確定正確的賦值。
參考 O'Reilly - Core-Python
根據 O'Reilly - Core-Python,所有必要的參數都應位於任何預設參數之前函數定義。這確保可以使用最少的所需參數集來呼叫該函數。
關鍵字參數呼叫
關鍵字參數允許無序位置參數並且可以跳過如果與預設參數結合使用,則忽略缺少的參數。例如,以下使用關鍵字參數的函數呼叫在語法上是正確的:
結論
為了避免語法錯誤並保持將參數分配給參數的邏輯流程,記住參數在函數定義中的正確位置至關重要。始終在任何可選參數(預設參數)之前聲明必需參數(非預設參數)。
以上是為什麼在 Python 中在預設參數之後聲明非預設參數是非法的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!