python模块之函数组合(Function composition)

本文介绍了Python中的函数组合概念,通过示例解释了如何使用lambda表达式和compose函数进行函数复合,包括复合两个和多个函数的方法。还讨论了如何使用functools.reduce来实现复合n个函数,并探讨了处理可变参数的复合函数。
摘要由CSDN通过智能技术生成

前言

最近在yolo源码的utils.py文件中看到了一个函数compose. 里面给出了一个网址, 详细地介绍了复合函数的概念以及用法

网址: https://mathieularose.com/function-composition-in-python/

那么我们在python中构建复合函数就不得不先提一个很常见的python语法糖--lambda表达式。

我们主要用到lambda表达式中的这种写法:

def func():
    return lambda x:x+1
a = func()
print(a(4))

创建一个 func()函数 返回lambda函数的地址, 而lambda需要一个x参数。

lambda语句的理解就是 参数:操作, 所以我们的a就是lambda函数, 我们给lambda传进一个4, 输出结果就是4+1=5。

复合函数

复合函数就是联合两个函数的一种方法,例如每个函数的结果被当作参数传到下一个函数中。例如复合两个函数 f g 就可以写成f( g ( x ) )。x 作为参数传到g中, 然后g的结果作为参数传到f之中。复合后的结果就是f函数的结果。

让我们定义compose2, 需要两个函数作为作为参数(f 和 g) 并且返回一个函数表示他们的复合

def compose2(f, 
  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值