欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python函数编程-偏函数partial function

发布时间:2025/7/14 python 66 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python函数编程-偏函数partial function 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
python函数编程-偏函数partial function

一般的,通过设定函数参数的默认值,可以减低函数调用的难度。比如:int()函数可以把字符串转换成整数:

>>> int('123') 123

事实上,int()函数还提供额外的base参数,表示进制,只是默认值是10而已:

>>> int('123',base=16) 291 >>> int('123',16) 291

现在,如果我们需要转换大量的二进制字符串,每次都调用int(x,base=2)显得比较麻烦。这时我们可以尝试封装函数int(x,base=2)成为int2(x),而int2(x)相当于:

>>> def int2(x,base=2): ... return int(x,base) ... >>> int2('1000111') 71

在python的functools模块中就内置了partial函数,用于把函数的某些参数固定住(也就是设置默认值),最后返回一个新函数。这就是偏函数(和数学中的偏函数的意义不同)。上述例子可以使用偏函数改写为:

>>> import functools >>> int2 = functools.partial(int,base=2) >>> int2('110011') 51

其实,上面新的int2函数,仅仅是把base参数的默认值由原来的10变为2。我们还是可以在函数调用的时候传入其他的值:

>>> int2('110011',base = 10) 110011

创建偏函数的时候,可以接收3种类型的参数:函数、*args、**kw:

当写成:

int2 = functools.partial(int,base=2)

int2('110011')

执行的结果相当于:

kw = { 'base': 2 } int('10010', **kw)

当写成:

>>> max2 = functools.partial(max,5) >>> max2(3,6) 6

相当于:

args = (10, 5, 6, 7) max(*args)

可见,如果一个函数的参数个数太多,需要简化的时候,使用functools.partial函数,可以创建一个函数,这个新函数可以将原函数的部分参数初始化(即赋默认值),调用的时候更简单

posted on 2017-12-28 23:45 风雨一肩挑 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/hiwuchong/p/8138386.html

总结

以上是生活随笔为你收集整理的python函数编程-偏函数partial function的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。