我有一个函数foo
,它有2个参数a
和b
。我想创建一个与foo
类似的函数列表,但a
的值是固定的。
def foo(a,b):
return a*b
fooList = []
for i in range(n):
fooList.append(foo(i))
我希望fooList[i]
返回一个类似于foo(i, b)
的函数。
答案 0 :(得分:1)
您可以使用functools.partial
:
from functools import partial
def foo(a, b):
return a * b
fooList = []
for i in range(n):
fooList.append(partial(foo, i))
然后您fooList[i](5)
计算i * 5
。
你也可以讨论lambda
函数,有点像这样:
for i in range(n):
fooList.append((lambda x: lambda y: x * y)(i))
然后你可以用与上面相同的方式调用它。