パッと思いついたのは以下のようなコード。
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 件のコメント:
コメントを投稿