在 Python 中,对于一个简单的函数foo(x, y)
,我知道至少有 3 种方法可以将参数绑定y
到某个值
# defining a nested function:
def foobar(x):
return foo(x, y=yval)
# using lambda
foobar = lambda x: foo(x, y=yval)
# using functools
from functools import partial
foobar = partial(foo, y=yval)
虽然我怀疑上面的列表是否详尽,但我也想知道我应该选择哪一个?它们在性能、安全性和命名空间处理方面都相同吗?还是每种方法都有额外的开销和注意事项?为什么要functools
定义partial
其他方法何时已经存在?