I have a number of functions with a combination of positional and keyword arguments, and I would like to bind one of their arguments to a given value (which is known only after the function definition). Is there a general way of doing that?
My first attempt was:
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)
>>> 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