user265454 - 2 months ago 5x

Python Question

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)

However, for this I need to know the exact args passed to

`f`

Answer

```
>>> 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
```

Source (Stackoverflow)

Comments