Python:args的一些函数->*参数(类似于functools中的参数)

Python:args的一些函数->*参数(类似于functools中的参数),python,functional-programming,Python,Functional Programming,我有以下实现: def vecAdd(v1, v2): return tuple(map(add, izip(v1,v2))) def vecMul(v1, f): return tuple(map(mul, izip(v1,repeat(f)))) 这些都不起作用,因为add(和mul)的调用类似于add((x,y)),也就是说,它只得到一个参数 是否有一些功能基本上实现以下功能 def funccaller_with_exposed_args(func): return lambd

我有以下实现:

def vecAdd(v1, v2): return tuple(map(add, izip(v1,v2)))
def vecMul(v1, f): return tuple(map(mul, izip(v1,repeat(f))))
这些都不起作用,因为
add
(和
mul
)的调用类似于
add((x,y))
,也就是说,它只得到一个参数

是否有一些功能基本上实现以下功能

def funccaller_with_exposed_args(func):
    return lambda args: func(*args)
在这种情况下,这可能是一种过分的技巧和过度的工程设计,但一般来说,如果您能够将一个完整的重循环放到纯C代码中,这在性能方面是非常重要的。

您可以使用或来实现这一点。
imap
starmap
类似,只是它首先压缩参数。 因此,您不必自己调用
izip
,只需使用
imap

import itertools as it
def vecAdd(v1, v2): return tuple(it.imap(add, v1, v2))
def vecMul(v1, f): return tuple(it.imap(mul, v1, it.repeat(f)))