在python中,如何进行这样的部分函数调用:partial(adder , 2)(4)?



如何制作一个像这样调用的部分函数:function(func , arg1((arg2(。以及您为什么/如何能够做到这一点。

f(x)(y).
x  = (func , arg1)
y = (arg2)

我以为我尝试使用装饰器来传递参数。例如,我可以调用包装器,当我调用 adder(5( 时它可以工作。

def partial(arg):
def add(func):
def wrapper(x):
return arg + func(x)
return wrapper
return add

@partial(1)
def adder(z):
return z
adder(4)
a = adder(4)
partial(a, 4)(5) /////////
###///////////////////////////////another format ///////////
def decorator(func , x):
def wrapper(y):
return func(y) + x
return wrapper

def adder(z):
return z

adder = decorator(adder , 2)
#########I can call the wrapper, but I get a local error when I call a partial function.

可以调用包装器,但是当我调用部分函数时出现本地错误。

我希望能够使用偏函数获得两个或多个数字的总和。

如果您不想使用functools.partial请尝试例如 lambda 函数adder = lambda x: lambda y: x+y

def adder(x):
def g(y):
return x+y
return g

这应该可以完成这项工作。

您提到要使用分部函数获取几个参数的总和,请尝试:

def adder(*summands):
def h(*more_summands):
return sum(list(summands)+list(more_summands))
return h

如果你想实现参数对任意函数的部分应用f这里是你可以做的

partial = lambda f, *args1, **kwargs1: lambda *args2, **kwargs2: 
f(*args1,*args2, **kwargs1, **kwargs2)

最新更新