前言
最近在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,