ostream作为函数返回值_python函数之四高阶函数、闭包、装饰器,理解不难吧

一、高阶函数:分为自定义高阶函数和内置高阶函数

  • 1--函数名可以作为参数输入;
  • 2--函数名可以作为返回值;

1、自定义高阶函数

aca89acd81a212c7e71a639894748a7a.png

2、内置高阶函数

比较常用的内置高阶函数:sorted、map、filter等

以前文章讲过,详细了解请点击 【万能排序sorted】 和 【对序列做处理mapfilter】

二、闭包函数:必须满足以下三点

  • 1--是嵌套函数(在函数中定义另一个函数)
  • 2--内部函数引用了外部函数中的变量
  • 3--外部函数返回值是内部函数

1、不传参数的闭包函数

闭包模板一:不传参数

1ceba7c0c3f74f07e0f710e196e3983c.png

2、传一般参数的闭包函数

闭包模板二:传参数1(非函数做参数)

e234066c0baeed7200927c65f129b180.png

3、传函数名参数的闭包函数(装饰器)

闭包模板三:传参数2(函数名做参数,就是装饰器)

1ffe5fea3149d290ce16b3b17ae95881.png

三、装饰器:把函数名作为参数传递的闭包函数。

另一种解释:高阶函数是把函数作为参数传递,所以装饰器可以理解为高阶函数和闭包的结合。

  • 1--作用:添加额外的功能(有些函数是不能随便改的;很多函数需要增加相同的功能)。
  • 2--使用:@装饰器

从最简单模板到最全模板讲解

1、装饰器模板样式一(装饰器无参数,被装饰函数无参数、无返回值)

d0e0e436b82d42f7dca89c6c15483e54.png

2、装饰器模板样式二(装饰器无参数,被装饰函数有参数、无返回值)

2eb789307cd0f257b50ce0fd811f2697.png

3、装饰器模板样式三(装饰器无参数,被装饰函数通用参数、无返回值)

e5928febba0cbb3488ab1fa37154d9de.png

4、装饰器模板样式四--最通用可以装饰任何函数(装饰器无参数,通用被装饰函数)

7375de90b235640b1f62cc44478d7c32.png

5、装饰器模板样式五(装饰器有参数,被装饰函数无参数)

448553e627ac70fb422893c5f19ee5a1.png

6、装饰器模板样式六(装饰器有参数,被装饰函数有参数)

6224aa4bf0f6d8285259e7df168c134d.png

7、装饰器模板样式七--最通用可以装饰任何函数(装饰器有参数,通用被装饰函数)

d6ca879636a6317eba3dae9c431ce9dc.png

下篇文章再讲解一下,装饰器类的实现。


如果你喜欢,请点赞、关注或转发哦!感谢支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值