Python 使用partial()函数

使用partial()函数应用部分参数partial()函数生成的是所谓的“部分应用”。部分应用的函数是基于旧函数及其部分参数生成的新函数,与柯里化密切相关。由于Python函数不是通过柯里化实现的,因此这里不介绍其理论背景。不过这个概念有助于我们理解简化。

示例如下:

>>> exp2 = partial(pow, 2)
>>> exp2(12)
4096
>>> exp(17)-1
131071

这里创建了函数exp2(y),实际上是pow(2, y)partial()函数将pow()函数的第一个位置参数与pow()函数绑定,当对新生成的exp2()函数求值时,通过partial()绑定的参数和exp2()自己的参数参与了求值。

位置参数的绑定是按照从左到右的严格顺序完成的。如果函数接收关键字参数,也按相同的规则进行。

部分应用函数也可以通过匿名函数实现,如下所示:

exp2 = lambda y: pow(2, y)

两种实现的效果完全一致。性能测试表明partial()函数比匿名函数实现的方式略快:

  • partial(): 0.37
  • 匿名函数:0.42

100万次循环运行快0.05秒,优势不明显。

由于匿名函数方式能实现partial()函数的所有功能,暂不详述。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程