2020-06-08→Python基础课第十节_函数三(高阶函数)

一、高阶函数定义

  • 定义:接收函数作为参数,或者将函数作为返回值返回的函数就是⾼阶函数!
    eg1.


    image.png

当我们使用一个函数作为参数时,实际上就是将一段代码传递到目标函数
eg.

image.png

二、匿名函数

  • 1、filter(参数1,参数2)函数,可以从序列中过滤出符合条件的元素,并保存到一个新的序列中。
    参数1:函数,根据该函数来过滤序列;
    参数2:需要过滤的序列;
    返回值:过滤后的新的序列。print(xxx(filter(参数1,参数2)))
    eg.


    image.png
  • 2、lambda()函数
    表达式专门用来创建一些简单的函数,他是函数的另一种创建方式。
    语法结构:
    lambda+参数列表:+返回值
    eg.

    image.png

三、闭包

  • 定义:将函数作为返回值返回,也是⾼阶函数我们也称为闭包。

  • 闭包的好处:
    1、通过闭包可以创建⼀些只有当前函数能访问的变量。
    2、可以将⼀些私有数据藏到闭包中。防止别人错误的修改变量导致覆盖全局变量等情况发生。
    3、不希望别人修改程序,安全性高!
    eg.

    image.png

  • 由上图程序可知⾏成闭包的条件:
    1、函数嵌套
    2、将内部函数作为返回值返回
    3、内部函数必须要使⽤到外部函数的变量!

四、装饰器

4.1 装饰器的引入

  • 我们可以直接通过修改函数中的代码来完成需求,但是会产⽣以下⼀些问题:
    1、如果修改的函数多,修改起来会⽐较麻烦;
    2、不⽅便后期的维护;
    3、这样做会违反开闭原则(ocp),程序的设计,要求开发对程序的扩展,要关闭对程序的修改。
    eg.


    image.png

4.2 装饰器的使用

  • 拓展,就要调用(而且某些函数需要传参数),会形成一个新的函数(即对旧函数的扩展)!!!
    eg.
    image.png

通过装饰器,可以在不修改原来函数的情况下来对函数进⾏扩展。在开发中,我们都是通过装饰器来扩展函数的功能的!!!
eg.

  • *args为接收所有位置参数,**kwargs为接收所有关键字参数
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。