1. ホーム
  2. python

[解決済み] Pythonの関数で引数を与えられた値にバインドする方法は?重複

2023-08-15 08:51:47

質問

私は、位置引数とキーワード引数の組み合わせを持ついくつかの関数を持っており、それらの引数の1つを与えられた値(関数定義の後でのみ知られている)に結び付けたいと思います。それを行う一般的な方法はありますか?

私の最初の試みは

def f(a,b,c): print a,b,c

def _bind(f, a): return lambda b,c: f(a,b,c)

bound_f = bind(f, 1)

ただし、そのためには f に渡される正確な引数を知る必要があり、私が興味を持っているすべての関数を結合するために単一の関数を使用することはできません (それらは異なる引数リストを持っているからです)。

どのように解決するのですか?

>>> from functools import partial
>>> def f(a, b, c):
...   print a, b, c
...
>>> bound_f = partial(f, 1)
>>> bound_f(2, 3)
1 2 3