python中的偏函数概念与数学中的不同。
前面我们已经讲到我们在定义函数的时候,可以给一些参数设置默认值,以方便调用的时候不必每个参数都输入。

但是在调用的时候,设置的默认值不一定都适合使用场景,所以我们需要修改它们。
例如,int()函数是一个将字符串转换成十进制整数的函数。实际上如果传入base参数我们可以做任意进制的转换。

int('123',base=8)

那么,如果我们在多处都用到了8进制的转换,那么重复书写上面的代码就不大科学了。
我们可以自定义一个转换函数

def int8(str):
    return int(str,base=8)

当然,python给我们提供了更加简便的方式

import functools

int8 = functools.partial(int, base = 8)
print int8('1234')

实际上,functools.partial()函数接收的是func、args、kwords三个参数。functools.partial()会自动将传入的args、*kwords加到func的参数表中。


Char
506 声望33 粉丝

hello world