使用部分参数创建Python函数

2024-04-19 14:18:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把一个Python函数传递给另一个函数,它的一些参数提前“填充”了。在

这就是我所做的简化:

def add(x, y):
    return x + y

def increment_factory(i):  # create a function that increments by i
    return (lambda y: add(i, y))

inc2 = increment_factory(2)

print inc2(3) # prints 5

我不想使用某种形式的args的传递,然后用*args来分解它,因为我传递inc2的函数不知道要将args传递给它。在

这对于一个团队项目来说有点太聪明了。。。有没有一种更直接或者更像Python的方法来完成这个任务?在

谢谢!在


Tags: lambda函数add参数byreturnthatfactory
1条回答
网友
1楼 · 发布于 2024-04-19 14:18:44

这被称为currying,或部分应用。您可以使用内置的functools.partial()。下面这样的方法可以满足您的需要。在

import functools
def add(x,y):
    return x + y

inc2 = functools.partial(add, 2)
print inc2(3)

相关问题 更多 >