匿名函数 / Anonymous Function


匿名函数是一种不需要绑定函数名的函数 (i.e. functions that are not bound to a name)。匿名函数通过 lambda 表达式进行构建。常用于快速建立起一个(一次性的)函数。

Note: lambda 是 Python 的一个表达式/关键字,类似 return,并非一个函数,而是能够生成匿名函数。

关于匿名函数的使用,可以用下面的方式,直接使用,

1 # Use directly
2 f = lambda x: x+1
3 def foo(x): return x
4 print('f type is:', type(f), 'foo type is:', type(foo))

lambda 所生成的函数可以直接使用,此时可能有违匿名函数的概念,当 lambda 函数通过 lambda 表达式定义后,需要调用时由于函数匿名因此需要将其赋予某个变量,通过变量名进行调用,此时实际上已经对匿名函数进行了命名,因此与匿名的概念有所相违。

f type is: <class 'function'> foo type is: <class 'function'>

但直接使用并不是匿名函数的最佳使用方式,lambda 生成的匿名函数最佳的使用场景应该是当一个函数需要一个简单临时函数作为输入参数的时候,使用 lambda 生成匿名函数可以免去为这个中间函数进行定义命名的过程。例如使用 map 对可迭代对象的所有值进行平方的时候,用匿名函数完成平方计算便十分方便。

# Use as a calculate func in other function
print(list(map(lambda x: x*x, [1, 2, 3, 4])))

同时,匿名函数也可以用在当需要 return 一个函数的场景下,免去对函数的命名。

1 # Use as a return func in other function
2 def foo(n): return lambda x: n+x
3 print(foo('n')('x'))

转载于:https://www.cnblogs.com/stacklike/p/8099195.html

Python的程序结构[4] - 函数/Function[2] - 匿名函数相关推荐

  1. python在教育领域的应用课题_项目式教学在高中信息技术教学中的应用探索——以Python基本程序结构教学为例...

    项目式教学在高中信息技术教学中的应用探索--以 Python基本程序结构教学为例 宋芹芹 济南西城实验中学 摘要:教学改革思想理念的深入发展,要求教师在课堂教学中不断尝试新鲜模式.在高中信息技术课堂教 ...

  2. 深入浅析Python 函数注解与匿名函数

    函数注解与匿名函数 关于函数参数的定义,调用以及函数参数的内容 函数注解 在编写函数,当下肯定清楚函数如何使用的.若是函数较为复杂,过段时间,编写者有可能需要花一段时间去重新了解函数的使用,那其他使用 ...

  3. python 函数递归_Python零基础之三元表达式、函数递归、匿名函数教程!超级详细!...

    目录 一.三元表达式 二.函数递归 递归调用的定义 递归分为两个阶段:递归,回溯 三.匿名函数 什么是匿名函数? 有名字的函数与匿名函数的对比 lambda匿名函数的应用 四.内置函数 #注意:内置函 ...

  4. linux 运行函数名,JavaScript匿名函数的各种执行形式

    近期在研究Pomelo源码,这个框架基于Node.js,所以非要频繁地与JavaScript脚本打交道不可.因此,本文中我们来总结 JavaScript语言中匿名函数的主要目的及各种存在形式.其实,匿 ...

  5. JavaScript 函数声明,函数表达式,匿名函数,立即执行函数之区别

    函数声明:function fnName () {-};使用function关键字声明一个函数,再指定一个函数名,叫函数声明. 函数表达式 var fnName = function () {-};使 ...

  6. js进阶ajax函数封装(匿名函数作为参数传递)(封装函数引入文件的方式非常好用)...

    js进阶ajax函数封装(匿名函数作为参数传递)(封装函数引入文件的方式非常好用) 一.总结 2.匿名函数作为参数传递 二.js进阶ajax函数封装 ajax1.js 1 function ajax( ...

  7. 函数声明、函数表达式、匿名函数、立即执行函数

    函数声明:function fnName () {-};使用function关键字声明一个函数,再指定一个函数名,叫函数声明. 函数表达式 var fnName = function () {-};使 ...

  8. python的程序结构_python中的程序结构

    程序结构: 主要是指结构化程序设计.它把一个程序分成若干互相独立的模块.在程序设计时,只要各个模块设计正确了,就可以保证整个程序也肯定设计正确. 结构化程序是由若干个基本结构组成而成,每一个结构可以包 ...

  9. Python编程基础:第五十三节 匿名函数Lambda Function

    第五十三节 匿名函数Lambda Function 前言 实践 前言 匿名函数是一种非常优雅的表达方式,它可以将函数定义用一行代码进行表示.其书写方式为参数列表:函数实现,其中多个参数之间用逗号隔开, ...

最新文章

  1. 清华园里的女生节:我今夜唯一的deadline,是为你写横幅
  2. 基于Springboot实现宠物医院综合管理系统
  3. 模块全解======ruby的类是单继承生物、所以出现了module、实现了多继承
  4. 【MM 模块】 Optimized Purchasing 优化采购 3
  5. 【存储知识学习】第三章磁盘原理与技术3.10 固态存储介质和固态硬盘-《大话存储》阅读笔记
  6. 联想android刷机教程视频,联想s939刷机教程(刷官方系统)
  7. 洛谷P1073 Tarjan + 拓扑排序 // 构造分层图
  8. laravel重定向自定义显示提示消息
  9. python os模块进程管理
  10. Eplan p8 v2.7安装不上加密狗驱动
  11. 计算机职业学校教学论文,中等职业学校计算机教学论文
  12. java离线_java8离线版软件下载
  13. Mindmanager2018 官方中文版下载
  14. 车载播放器 android,KX万能播放器
  15. 关于FS4412的ARM开发环境搭建并点亮LED灯
  16. Python一帮一学习小组
  17. 如何高效学习_斯科特扬(读后,整体学习法试用,总结)
  18. p0级重大事故:超卖了100瓶飞天茅台,整个项目组慌得一逼~
  19. 云南师范大学商学院计算机二级证书,云南师范大学商学院计算机科学和技术系.doc...
  20. OpenGL中纹理坐标和顶点坐标表示

热门文章

  1. 给你这张图,你能搜索到来历吗
  2. 赢在中国 (2008-3-19)
  3. MariaDB安装1,2
  4. 关于明晚即将发布的新款 iPad Pro,最大的亮点也许不是 Face ID
  5. 欧盟通过最新《数据保护法》
  6. Java保留小数点一位的方法
  7. CSP 1.0 语言规范
  8. 套接字(socket)基本知识与工作原理
  9. 因特网 以太网 互联网的含义及区别
  10. 25--最后一个单词的长度