将具有2个变量的方法转换为一个变量

时间:2017-07-01 20:27:44

标签: python python-3.x

我有一个函数foo,它有2个参数ab。我想创建一个与foo类似的函数列表,但a的值是固定的。

def foo(a,b): 
   return a*b

fooList = []
for i in range(n):
   fooList.append(foo(i))

我希望fooList[i]返回一个类似于foo(i, b)的函数。

1 个答案:

答案 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))

然后你可以用与上面相同的方式调用它。