函數7.1- 可接受任意數量參數的函數

Q:建立一個可接受任意數量參數的函數?

Answer

爲了能讓一個函數接受任意數量的參數,可以使用一個 * 參數。例如:

在這個例子中,rest 是由所有其他位置參數組成的元組。然後我們在程式碼中把它當成了一個序列來進行後續的計算。

爲了接受任意數量的關鍵字參數,使用一個以 ** 開頭的參數。比如:

在這裡,attrs 是一個包含所有被傳入進來的關鍵字參數的字典。

如果你還希望某個函數能同時接受任意數量的位置參數和關鍵字參數,可以同時 使用 * 和 **。比如:

使用這個函數時,所有位置參數會被放到 args 元組中,所有關鍵字參數會被放到 字典 kwargs 中。

Discuss

一個 * 參數只能出現在函數定義中最後一個位置參數後面,而**參數只能出現在 最後一個參數。有一點要注意的是,在 * 參數後面仍然可以定義其他參數。

這種參數就是我們所說的強制關鍵字參數,在後面 7.2 小節還會詳細講解到。

--

--