Python中的偏函数

Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function),偏函数可以降低我们调用函数的难度。

下面我们来分别解释一下这三部分的含义:

(1)第一部分也就是第一个参数,是一个函数,偏函数是将所要承载的函数作为partial()函数的第一个参数,原函数的各个参数依次作为partial()函数后续的参数,除非使用关键字参数。这个函数可以是你定义的,也可以是Python内置函数。偏函数实现的功能其实还是建立在原函数基础上的,只是固定了一些参数,以便函数能用更少的参数进行调用。

(2)第二部分是一个可变参数,*args,比如内置函数max的参数就是一个可变参数,max(1,2,3,4,5)=5

max2=partial(max,10),这个max2就是个偏函数,这里的 10 显然就是作为 *args 里的值传入的,使得max函数预先有个参数10,然后按左右顺序与max的函数组合成(10,1,2,3,4,5),再求最大值

(3)第三部分是一个关键字参数,比如内置函数int的第二个参数就是命名关键字参数,默认base=10,表示int转换时默认是10进制的:

int2偏函数实际上固定了 int() 函数的关键字参数 base

int2('1000000')

相当于:

kw = { 'base': 2 }

int('1000000', **kw)  # 如果不指明 base=2 而只是传入 2 的话,那么 2 被认为是 *args 的值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 看到网上的例子: 结果: 也就是说,args接收的数据类型是单个的字符,*kwargs接收的数据类型是有名字有特指...
    阿莫米德阅读 396评论 0 1
  • 函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确...
    齐天大圣李圣杰阅读 1,638评论 0 2
  • 偏函数使用functools.partial可以创建一个新的函数,这个新函数可以固定住原函数的部分参数,从而在调用...
    MJXH阅读 1,704评论 0 1
  • 基础1.r''表示''内部的字符串默认不转义2.'''...'''表示多行内容3. 布尔值:True、False(...
    neo已经被使用阅读 1,888评论 0 5
  • 45岁四线小城市的公务员大叔,终于鼓足勇气,在一个多月前,敲击键盘开始了自己的写作。 1 人到中年,快要焦虑到抑郁...
    有度wyh123000阅读 483评论 2 5

友情链接更多精彩内容