3、匿名函数

当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。
在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算f(x)=x^2时,除了定义一个f(x)的函数外,还可以直接传入匿名函数:

>>>list(map(lambda x : x*x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
[1, 4, 9, 16, 25, 36, 49, 64, 81]

通过对比可以看出,匿名函数lambda x: x * x实际上就是:
def f(x):
return x * x
关键字lambda表示匿名函数,冒号前面的x表示函数参数。

匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。
用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数:

>>> f = lambda x: x * x
>>> f
<function <lambda> at 0x101c6ef28>
>>> f(5)
25

同样,也可以把匿名函数作为返回值返回,比如:
def build(x, y):
return lambda: x * x + y * y
这是一个无参的匿名函数,使用可看下面的例子:

>>>def build(x, y):return lambda : x * x + y * y>>>a = build(2, 3)
>>>a
<function duild.<locals>.<lambda> at 0x0000000003815598>>>>a()
13

Python函数式编程简介(三)匿名函数相关推荐

  1. Python函数式编程简介(一)高阶函数

    本文概括介绍Python函数式编程的一些概念及用法,详细请参考: https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df ...

  2. Python函数式编程简介(二)返回函数

    本文为Python函数式编程的第二部分主要讲解返回函数和闭包 2.返回函数 2.1.函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. 我们来实现一个可变参数的求和.通常 ...

  3. python函数式编程、高阶函数

    1.map() python内置的高阶函数,接收一个函数f和一个list,并通过把函数f依次作用在list的每个元素上,得到一个新的list并返回. def f(x):return x * xprin ...

  4. Python函数式编程简介(五)偏函数

    5.偏函数 Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function).要注意,这里的偏函数和数学意义上的偏函数不一样. 在介绍函数参数的时候,我 ...

  5. python内置高阶函数求导_Python——函数式编程、高阶函数和内置函数,及

    Python--函数式编程.高阶函数及内置函数 函数式编程 一.不可变数据:不用变量保存状态不修改变量 二.第一类对象:函数即"变量" 1.函数名可以当做参数传递 2.返回值可以是 ...

  6. Python函数式编程——map()、reduce()

    提起map和reduce想必大家并不陌生,Google公司2003年提出了一个名为MapReduce的编程模型[1],用于处理大规模海量数据,并在之后广泛的应用于Google的各项应用中,2006年A ...

  7. py函数式编程(高阶函数map/reduce/filter/sorted、闭包函数/返回函数、匿名函数lamber、@装饰器decorator、偏函数functool.partial())

    #py函数式编程.py #高阶函数map/reduce/filter/sorted.闭包函数/返回函数.匿名函数lamber.@装饰器decorator.偏函数functool.partial()# ...

  8. python编写函数_浅谈Python 函数式编程

    匿名函数lambda表达式 什么是匿名函数? 匿名函数,顾名思义就是没有名字的函数,在程序中不用使用 def 进行定义,可以直接使用 lambda 关键字编写简单的代码逻辑.lambda 本质上是一个 ...

  9. Python 函数式编程,Python中内置的高阶函数:map()、reduce()、filter()与sorted(),Python中返回函数

    函数式编程 是一种编程范式,比函数更高层次的抽象. 函数式编程将计算视为函数而非指令. 纯函数式编程:不需要变量,没有副作用,测试简单. 支持高阶函数,代码简洁. Python 支持的函数式编程 不是 ...

最新文章

  1. 进程间通信(一)管道
  2. win10连接蓝牙耳机_苹果手机蓝牙耳机无法连接怎么办?
  3. 蚂蚁金服移动端可视化解决方案 F2 3.2 正式发布
  4. 共享卫士完全设置教程图解
  5. hdu 1599(Floyd求最小环)
  6. 论文笔记:Deep Residual Learning
  7. 李宏毅机器学习课程2~~~误差从哪里来?
  8. 311. Sparse Matrix Multiplication
  9. unity3D 移动开发代码优化
  10. java actionsupport_struts2为什么action要继承actionSupport类
  11. 中安证件识别系统介绍
  12. 新的服务器装系统前怎么分区吗,新硬盘使用之前要如何分区?硬盘分区常用方法详解...
  13. 9个超绚丽的HTML5 3D图片动画特效
  14. 编程达人教你如何快速掌握一门编程语言附技术书阅读方法论
  15. GameMaker: Studio 学习笔记(二)深度 物理属性 房间切换 滑冰
  16. The Chivalrous Cow(BFS+最短路径)
  17. 教师学计算机信息,计算机教师
  18. 一个站长找回域名的艰辛之路
  19. Android Studio修改安卓模拟器的安装位置和SDK的位置
  20. BZOJ 4811([Ynoi2017]由乃的OJ-树链剖分)

热门文章

  1. 服务链路追踪(Spring Cloud Sleuth)
  2. MyBatis基本配置和实践(三)
  3. 在RHEL6.2上,将一个分区开机自动挂载
  4. CONTROLLER_NAME 常量 当前访问的控制器
  5. 改变你人生态度的30个关键词
  6. 名企进名校精选IT人 07年毕业生就业看好
  7. 微信小程序扫码的代码及获取二维码的url地址
  8. spark 简单实战_SparkCore入门实战 (二)
  9. iis 跨域_织梦会员登录二级域名不能跨域
  10. 最初级且依赖于硬件的计算机语言是,大一计算机考试练习题