Pythonの高階関数の使い方について。
この記事の内容はコチラです
- Pythonの高階関数の使い方
- 関数に関数を渡す
- 関数を変数に代入する
今回は、Pythonの高階関数の使い方として、関数に関数を渡す方法を解説します。
関数に関数を渡す(高階関数)
関数を引数で受け取って処理する関数を「高階関数」といいます。
関数に関数を渡す
def convert_type(num, type): if type == 16: # 16進数に変換する return hex(num) elif type == 2: # 2進数に変換する return bin(num)
関数「convert_type」を定義しました。これは受け取った10進数の数値「num」を16進数・2進数に変換します。「type」は「16か2」を指定します。
def convert_hex(func, num): return func(num, 16)
関数「convert_hex」の第一引数「func」は関数です。
関数の引数に関数「func」を設定しました。関数内で別の関数「func」を実行します。
これが「高階関数」です。
convert_hex(convert_type, 100) #[結果] 0x64
先ほど設定した高階関数「convert_hex」を実行しました。第一引数には「convert_type」関数を指定しました。ここでも関数に関数をわたしていますね。
高階関数を使って、10進数「100」を16進数「64」に変換することができました。
関数に関数を渡すまとめ
Pythonの関数のここまでをまとめます。
def 関数A 処理 def 関数B(関数A) 関数A # 実行 関数B(関数A)
このように関数Bに関数Aを渡して実行しました。Pythonでは関数でもオブジェクトの1つなので、このように関数を渡すことができます。
以上、Pythonで関数に関数を渡す(高階関数)方法でした。
コメント