偏函数
偏函数是functools模块提供的一个函数生成机制,使函数调用更加简单简洁
import functools
print int('101')
print int('101', 10)
print int('101', 2)
print int('101', 8)
print int('101', 16)
int2 = functools.partial(int, base = 2)
int8 = functools.partial(int, base = 8)
int16 = functools.partial(int, base = 16)
print int
print int2
print int8
print int16
print int2('101')
print int2('101', base = 10)
print int2('101', base = 8)
output:
101
101
5
65
257
<type 'int'>
<functools.partial object at 0x1050779f0>
<functools.partial object at 0x105077a48>
<functools.partial object at 0x105077aa0>
5
101
65
functool.partial函数有三个参数值,分别为函数对象,*args,**kw
int2 = functools.partial(int, base = 2)
等价于:
def int2(base = 2)
return int(x, base)
总结:
- int的原型为int(x, base = 10)
- functools.partial返回一个偏函数,调用这个偏函数更加简单简洁
- functools.partial返回的偏函数可以显式指定默认参数值
- functool.partial函数有三个参数值,分别为函数对象,*args,**kw
- int2('101')相当于kw = {base:2}; int('101', **kw)
- max2 = functools.max(max, 10); max2(5, 6, 7)相当于args = {10, 5, 6, 7}; max(*args),把10作为*args的一部分自动添加到左边