🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ### 引入 今天讲解的内容是偏函数,偏函数是从Python2.5引入的一个概念,通过functools模块被用户调用。 偏函数是将所要承载的函数作为partial()函数的第一个参数,原函数的各个参数依次作为partial()函数后续的参数,除非使用关键字参数。 通过语言描述可能无法理解偏函数是怎么使用的,那么就举一个常见的例子来说明。在这个例子里,我们实现了一个取余函数,对于整数100,取得对于不同数m的100%m的余数。 ### Python函数式编程——偏函数(无关键字参数) ~~~ from functools import partial def mod( n, m ): return n % m mod_by_100 = partial( mod, 100 ) print mod( 100, 7 ) # 2 print mod_by_100( 7 ) # 2 ~~~ 由于之前看到的例子一般选择加法或乘法来讲解,无法体会偏函数参数的位置问题,容易给人造成partial的第二个参数也是原函数的第二个参数的假象,所以我在这里选择mod来讲解。 而对于有关键字参数的情况下,就可以不按照原函数的参数位置和个数了。下面再看一个例子,讲的是如何进行不同的进制转换。 ### Python函数式编程之偏函数(进制转换) ~~~ from functools import partial bin2dec = partial( int, base=2 ) print bin2dec( '0b10001' ) # 17 print bin2dec( '10001' ) # 17 hex2dec = partial( int, base=16 ) print hex2dec( '0x67' ) # 103 print hex2dec( '67' ) # 103 ~~~ 偏函数的这些应用看似简单,用途却很大,可以很好的执行DRY原则,节省编程成本。 >本文内容遵从CC3.0版权协议,转载请注明:转自[Pythoner](http://www.pythoner.com/) >本文链接地址:[Python函数式编程——偏函数](http://www.pythoner.com/54.html)