python partial with keyword arguments

时间:2016-08-16 13:13:29

标签: python partial

我有一个需要3个关键字参数的函数。它有x和y的默认值,我想使用map为z的不同值调用该函数。当我运行下面的代码时,我收到以下错误:

  

foo()为关键字参数' x'

获取了多个值
def foo(x =1, y = 2, z = 3):
    print 'x:%d, y:%d, z:%d'%(x, y, z)


if __name__ == '__main__':
    f1 = functools.partial(foo, x= 0, y = -6)
    zz = range(10)
    res = map(f1, zz)

有没有Pythonic方法来解决这个问题?

1 个答案:

答案 0 :(得分:0)

无需使用partial,您可以获得与预期相同的结果:

def foo(x =1, y = 2, z = 3):
    print 'x:%d, y:%d, z:%d'%(x, y, z)


if __name__ == '__main__':
    f1 = lambda z: foo(x=0, y=-6, z=z)
    zz = range(10)
    res = map(f1, zz)

请查看此链接以更好地理解:functools.partial wants to use a positional argument as a keyword argument