
何でも引数にする
関数に関数を渡す。
関数から関数を返す。
任意の数のあらゆる型
の引数を処理。
あらゆる型の引数をいくつでも受け取る
Python
では独自の関数を作成するときに、(
**
を使って)任意の数のキーワード引数だ
けでなく(
*
を使って)引数のリストを受け取れるところが優れています。さらに、この
2
つ
のテクニックを組み合わせて任意の数のあらゆる型の引数を取る関数を作成することもで
きます。
下は
3
番目のバージョンの
myfunc
です(
myfunc3
という名前です)。この関数は可変
長の引数のリスト、可変長のキーワード引数、またはその両方の組み合わせを取ります。
394
10
章
元の
myfunc
は引数の
任意のリストでも動作
します。
myfunc2
関数は任意の
数のキーと値のペアでも
動作します。
myfunc3
関数は、引数の
リスト、一連のキーと値の
ペア、またはその両方で
あっても任意の入力で
問題なく動作します。
*args
と
**kwargs
の
両方が
def
行にあります。
次の短い
IDLE
セッションは
myfunc3
を実行した様子です。
引数なしでも
動作します。
リストとキー
ワード引数の
組み合わせで
も動作します。
リストでも動作します。
キーワード引数でも
動作します。