资讯专栏INFORMATION COLUMN

python疑问7:高阶函数,匿名函数,装饰器,偏函数总结

jerry / 1449人阅读

摘要:本文是学习廖雪峰官网网站教程后总结的,供日后参考用高阶函数一个函数将另一个函数作为参数,称为高阶函数。

本文是学习廖雪峰官网网站python教程后总结的,供日后参考用
1.高阶函数
一个函数将另一个函数作为参数,称为高阶函数。当然也可以将一个函数作为结果返回

示例1:将函数作为参数

</>复制代码

  1. def add(x,y,f):
  2. return f(x)+f(y)
  3. result = add(-3,2,abs)
  4. print(result) // 5

示例2:将函数作为结果返回

</>复制代码

  1. def func(x,y):
  2. def add():
  3. return x+y
  4. return add
  5. f = func(2,3)
  6. print(f) // Out:.add at 0x0000019D1F420158>
  7. result = f()
  8. print(result) // 5

2.匿名函数

</>复制代码

  1. f = lambda x: x*x
  2. print(f) // at 0x0000019D1F420158>
  3. result = f(5)
  4. print(result) //25

3.装饰器
装饰器(decorator)就是一个返回函数的高阶函数,在代码运行期间动态增加功能。
无参数的装饰器示例:

</>复制代码

  1. import functools
  2. def log(func):
  3. //经过装饰的函数名称发生改变,此方法解决这个问题
  4. @functools.wraps(func)
  5. def wrapper(*args,**kw):
  6. print("call %s:" % func.__name__)
  7. return func(*args,**kw)
  8. return wrapper
  9. @log
  10. def now():
  11. print("2018-2-4")
  12. now() // call now: 2018-2-4

带参数的装饰器示例:

</>复制代码

  1. import functools
  2. def log(text):
  3. def decorator(func):
  4. //经过装饰的函数名称发生改变,此方法解决这个问题
  5. @functools.wraps(func)
  6. def wrapper(*args, **kw):
  7. print("%s %s():" % (text, func.__name__))
  8. return func(*args, **kw)
  9. return wrapper
  10. return decorator
  11. @log("execute")
  12. def now():
  13. print("2015-3-25")
  14. now() // execute now(): 2015-3-25

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

</>复制代码

  1. import functools
  2. //等价于
  3. //def int2(x, base=2):
  4. // return int(x, base)
  5. int2 = functools.partial(int, base=2)
  6. result = int2("100000")
  7. print(result) // 32

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41375.html

相关文章

  • Python入门学习(七)

    摘要:在熟悉了自定义函数和函数中使用到的参数必选参数默认参数可变参数关键字参数命名关键字参数以及由函数返回值引伸出的递归和装饰器后让我们继续前行高阶函数函数接收两个参数,一个是函数,一个是,将传入的函数依次作用到序列的每个元素,并把结果作为新的返 在熟悉了自定义函数和函数中使用到的参数(必选参数, 默认参数, 可变参数, 关键字参数, 命名关键字参数), 以及由函数返回值引伸出的递归和装饰器...

    lmxdawn 评论0 收藏0
  • Python文件读写和函数编程

    摘要:根据我们已知的运行模式,我们没法在函数返回之后继续调用函数,在函数被调用的时候,变量早已不复存在,可能会发生一个运行时错误。万万没想到,返回的函数居然能够正常工作。 文件读写 在Python中,文件的操作应用非常多,比如大数据领域,涉及许多数据处理请求,基本上都是从一个文件对数据进行分析、抽取、重写进行梳理数据 文件的读写分几步?如何把大象放冰箱showImg(https://segm...

    xiguadada 评论0 收藏0
  • [python] 初探'函数式编程'

    摘要:前言继续向下看廖大教程,看到了函数式编程这一节,当时是觉得没啥用直接跳过了,这次准备要仔细看一遍了,并记录下一些心得。 前言 继续向下看廖大教程,看到了函数式编程这一节,当时是觉得没啥用直接跳过了,这次准备要仔细看一遍了,并记录下一些心得。 函数式编程 上学期有上一门叫 人工智能 的课,老师强行要我们学了一个叫做 prolog 的语言,哇那感觉确实难受,思维方式完全和之前学过的不一样,...

    xcc3641 评论0 收藏0
  • 记录我的Python学习笔记

    摘要:本文是通过廖雪峰的网站学习而整理的真的是很好的教程,省得我花钱买书了,然后我没有去再整理总结语法,而是直接通过写出代码段来体现自己的学习,也方便以后的快速复习回顾。 不想再像以前那样,什么都从头开始学习语法、总结语法,这样反而会过分纠结于语法,耽误了开发,毕竟语言的主要属性是工具,次要的属性是语言本身。 所以还是先熟练使用语言去进行开发,等足够熟悉了,再去研究语言本身(编译原理……)。...

    lijy91 评论0 收藏0
  • Python学习之路24-一等函数

    摘要:函数内省的内容到此结束。函数式编程并不是一个函数式编程语言,但通过和等包的支持,也可以写出函数式风格的代码。 《流畅的Python》笔记。本篇主要讲述Python中函数的进阶内容。包括函数和对象的关系,函数内省,Python中的函数式编程。 1. 前言 本片首先介绍函数和对象的关系;随后介绍函数和可调用对象的关系,以及函数内省。函数内省这部分会涉及很多与IDE和框架相关的东西,如果平时...

    wind3110991 评论0 收藏0

发表评论

0条评论

jerry

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<