Python的程序结构[4] -> 函数/Function[2] -> 匿名函数
匿名函数 / Anonymous Function
匿名函数是一种不需要绑定函数名的函数 (i.e. functions that are not bound to a name)。匿名函数通过 lambda 表达式进行构建。常用于快速建立起一个(一次性的)函数。
Note: lambda 是 Python 的一个表达式/关键字,类似 return,并非一个函数,而是能够生成匿名函数。
关于匿名函数的使用,可以用下面的方式,直接使用,
# Use directly
f = lambda x: x+1
def foo(x): return x
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 一个函数的场景下,免去对函数的命名。
# Use as a return func in other function
def foo(n): return lambda x: n+x
print(foo('n')('x'))
Python的程序结构[4] -> 函数/Function[2] -> 匿名函数的更多相关文章
- Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数
Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数 目录 Pycharm使用技巧(转载) Python第一天 ...
- Python【外】第一节 map()和匿名函数的配合使用
Python[外]第一节 map()和匿名函数的配合使用 map()函数 map函数使用语法如下:map(fun, iterable, ...) 功能: map() 会根据提供的函数fun对指定序列i ...
- PYTHON 学习笔记2 流程控制工具以及函数定义、匿名函数
前言 在上一节的学习中.已经介绍了几种基本类型.包括字符串的定义,以及字符串中索引.切片.字符串拼接的使用方法.以及基本的整形数据运算.一些之前都没有了解过的运算符.比如 ** 乘方 //整数除法等. ...
- JavaScript 函数声明,函数表达式,匿名函数的区别,深入理解立即执行函数(function(){…})()
function fnName(){xxxx}; // 函数声明:使用function关键字声明一个函数,在指定一个函数名. //例如:(正常,因为 提升 了函数声明,函数调用可以在函数声明之前) f ...
- day16_函数作用域_匿名函数_函数式编程_map_reduce_filter_(部分)内置函数
20180729 补充部分代码 20180727 上传代码 #!/usr/bin/env python # -*- coding:utf-8 -*- # ***************** ...
- 深入理解,函数声明、函数表达式、匿名函数、立即执行函数、window.onload的区别.
一.函数声明.函数表达式.匿名函数1.函数声明:function fnName () {…};使用function关键字声明一个函数,再指定一个函数名,叫函数声明. 2.函数表达式 var fnNam ...
- js闭包(函数内部嵌套一个匿名函数:这个匿名函数可将所在函数的局部变量常驻内存)
js闭包(函数内部嵌套一个匿名函数:这个匿名函数可将所在函数的局部变量常驻内存) 一.总结 1.闭包:就是在一个函数内部嵌套一个匿名函数,这个匿名函数可以访问这个函数的变量. 二.要点 闭包 闭包的相 ...
- JavaScript 函数声明,函数表达式,匿名函数,立即执行函数之区别
函数声明:function fnName () {-};使用function关键字声明一个函数,再指定一个函数名,叫函数声明. 函数表达式 var fnName = function () {-};使 ...
- JS函数定义与匿名函数的调用
一.函数声明.函数表达式.匿名函数 函数声明:function fnName () {…};使用function关键字 声明一个函数,再指定一个函数名,叫函数声明. 函数表达式 var fnName ...
随机推荐
- http客户端缓存
这篇文章写得比较,点击查看
- Python 爬取网页中JavaScript动态添加的内容(一)
当我们进行网页爬虫时,我们会利用一定的规则从返回的 HTML 数据中提取出有效的信息.但是如果网页中含有 JavaScript 代码,我们必须经过渲染处理才能获得原始数据.此时,如果我们仍采用常规方法 ...
- Centos/linux开放端口
在linux上部署tomcat发现外部无法访问可以通过两种方式解决: 1.关闭防火墙 service iptables stop(不推荐) 2.修改相关文件,开放需要开放的端口 (1)通过命令vi / ...
- rabbitmq之rpc
环境:windows或者Linux,python3.6,rabbitmq3.5要求: 可以对指定机器异步的执行多个命令 例子: >>:run "df -h" --hos ...
- 【转载】Unity3D研究院之静态自动检查代码缺陷与隐患
代码缺陷和代码错误的最大区别是,代码缺陷不影响游戏编译,而代码错误编译都不通过.但是代码缺陷会影响游戏发布后产生的一系列BUG..我今天无意间逛外国论坛发现的一个方法,使用了一下感觉挺给力的第一时间分 ...
- corosync.conf
##totem定义集群内各节点间是如何通信的,totem本是一种协议,专用于corosync专用于各节点间的协议,协议是有版本的 totem { ##版本号 version: ##安全认证on|off ...
- [转载]kd tree
[本文转自]http://www.cnblogs.com/eyeszjwang/articles/2429382.html k-d树(k-dimensional树的简称),是一种分割k维数据空间的数据 ...
- ubuntu服务器环境配置参考
一.基本的Linux系统命令: ls 查看当前目录下的文件及文件夹 cd /var/www/html 转换目录到/var/www/html cd abc/ddd/ 转换目录到当前目录下的abc文件夹下 ...
- [C语言]防止头文件和全局变量重复定义
昨天下午将全局变量定义在H文件中导致链接时提示变量在多个obj文件内重复. 解决办法如下: 将变量移入C文件中进行定义,然后在H文件中加入extern在变量之前. 这样当其它C文件引用该全局变量时 ...
- [bzoj5287] [HNOI2018]毒瘤
题目描述 从前有一名毒瘤. 毒瘤最近发现了量产毒瘤题的奥秘.考虑如下类型的数据结构题:给出一个数组,要求支持若干种奇奇怪怪的修改操作(比如区间加一个数,或者区间开平方),并支持询问区间和.毒瘤考虑了n ...