パッと思いついたのは以下のようなコード。
def add(x, y) return x + y add2 = lambda y: add(2, y) print(add2(3))
なんか微妙だなと思ってちょっと調べたら
functools
モジュールを使えば以下のように書けることが分かった。import functools def add(x, y): return x + y add2 = functools.partial(add, 2) print(add2(3))
ちゃんと標準ライブラリでサポートされてましたね。
ちなみに
functools.partial()
の第一引数には呼び出し可能オブジェクトなら何でも渡せる。lambda
でも__call__()
を実装したクラスのインスタンスでもOKです。
0 件のコメント:
コメントを投稿