美文网首页
Python基础学习:高阶函数

Python基础学习:高阶函数

作者: LittleJessy | 来源:发表于2019-04-25 16:25 被阅读0次
  1. map
    map() 函数接收两个参数,一个是函数,一个是 Iterable,map 将传入的函数依次作用到序列的每个元素,并把结果作为新的 Iterator 返回。


    image.png
  2. reduce
    reduce 把一个函数作用在一个序列 [x1, x2, x3,...] 上,这个函数必须接收两个参数, reduce 把结果继续和序列的下一个元素做累积计算。


    image.png

    字符串转换成整数:


    image.png
  3. filter
    filter()函数用于过滤序列。filter() 也接收一个函数和一个序列。和 map() 不同的是 filter() 把传入的函数依次作用于每个元素,然后根据返回值是 True 还是 False 决定保留还是丢弃该元素。


    image.png
  4. sorted
    Python内置的sorted()函数可以对list进行排序,还可以接收一个key函数来实现自定义的排序,key指定的函数将作用于list的每个元素上,并根据key函数返回的结果进行排序:


    image.png
  5. 闭包


    image.png

    调用lazy_sum()时,返回的并不是求和结果,而是求和函数:


    image.png
    调用函数f时,才真正计算求和结果:
    image.png

    在函数 lazy_sum 中又定义了函数 sum ,并且,内部函数 sum 可以引用外部函数 lazy_sum 的参数和局部变量,当 lazy_sum 返回函数 sum 时,相关参数和变量都保存在返回的函数中,这种称为“闭包(Closure)”。

  6. 匿名函数:lambda
    匿名函数有个限制,就是只能有一个表达式,不用写 return ,返回值就是该表达式的结果。


    image.png
  7. 装饰器
    在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)。装饰器接受一个函数作为参数,并返回一个函数。定义时需要借助Python的@语法:


    image.png

    把@log放到now()函数的定义处,相当于执行了语句:


    image.png
    由于 log() 是一个decorator,返回一个函数,所以,原来的 now() 函数仍然存在,只是现在同名的 now 变量指向了新的函数,于是调用 now() 将执行新函数,即在 log() 函数中返回的 wrapper() 函数。wrapper() 函数的参数定义是 (*args, **kw) ,因此, wrapper() 函数可以接受任意参数的调用。在 wrapper() 函数内,首先打印日志,再紧接着调用原始函数。
    一个完整的decorator的写法如下:
    image.png

    或者针对带参数的decorator:


    image.png
  8. 偏函数
    functools.partial 的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。


    image.png

相关文章

  • Python基础学习:高阶函数

    mapmap() 函数接收两个参数,一个是函数,一个是 Iterable,map 将传入的函数依次作用到序列的每个...

  • python lambda

    lambda是匿名函数。前面我们提到python高阶函数,学习了map,reduce,filter等python内...

  • Python ☞ day 4

    Python学习笔记之 (set)集合 & 迭代器 & 函数 & 匿名函数 & 高阶函数 set set:类似di...

  • python装饰器

    装饰器简述 要理解装饰器需要知道Python高阶函数和python闭包,Python高阶函数可以接受函数作为参数,...

  • Python进阶语法——函数式编程、模块,面向对象

    一、 Python进阶学习 一、函数式编程 1.1函数式编程 1.2高阶函数 1.2.1 import mathd...

  • Python高阶函数

    本文要点 1.什么是高阶函数 2.python中有哪些常用的高阶函数 什么是高阶函数? 在了解什么是高阶函数之前,...

  • Kotlin学习之高阶函数和Lambda表达式的基础用法

    Kotlin学习之高阶函数和Lambda表达式的基础用法 一、定义和调用高阶函数的写法 kotlin.collec...

  • Python高阶函数

    本篇将介绍Python的函数式编程,介绍高阶函数的原理,更多内容请参考:Python学习指南 函数式编程 函数是P...

  • python学习心得

    慕课网学习过程中,发现了很多有意思的高阶函数: reduce()函数也是Python内置的一个高阶函数。reduc...

  • Python sorted

    上一篇我们学习了python的高阶函数和map,reduce的用法,今天我们来看另一个高阶函数 sorted。 排...

网友评论

      本文标题:Python基础学习:高阶函数

      本文链接:https://www.haomeiwen.com/subject/rkmagqtx.html