Partial function call as an argument python
本问题已经有最佳答案,请猛点这里访问。
以下代码是否有任何作用?
1 2 3 4 5 6 7 8 | def f1(f2, x): return f2(x) def f2(y, z): return y + z f1(f2(10, ), 20) output 30 |
我将不胜感激任何帮助。
是的,这就是
1 2 3 | from functools import partial f1(partial(f2, 10), 20) |
它有点相当于:
1 2 3 4 5 6 7 | def partial(func, *partialargs, **partialkwargs): def g(*args, **kwargs): fargs = partialargs + args fkwargs = partialkwargs.copy() fkwargs.update(kwargs) return func(*farg, **fkwargs) return g |
但与上述实现相比,
显示
1 | f1(lambda x: f2(10,x), 20) |
@Willem显示的部分更适合您的特定问题,但