前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >带你了解python 匿名函数 lambda

带你了解python 匿名函数 lambda

作者头像
叶子陪你玩
发布于 2020-03-12 07:24:51
发布于 2020-03-12 07:24:51
64600
代码可运行
举报
运行总次数:0
代码可运行
匿名函数,直白点说也就是没有名字的函数。有名字的函数我们都见过。一般常见的函数:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#定义函数
def sum(a,b):
    return a+b

#调用
sum(3,5)
# 打印结果
print(sum(3, 5))  # 结果:8

用匿名函数怎样来实现同样的效果呢?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 创建函数
lambda a, b: a+b
# 传入参数运算
(lambda a, b: a+b)(3, 5)
# 打印结果
print((lambda a, b: a+b)(3, 5)) #结果:8

打印看一下,显示都是函数,一个是叫sum的函数,另外一个就是lambda的匿名函数。

匿名函数如果赋值给一个变量,那么这个变量就可以当做函数调用了。这样就变成了之前定义的函数了。

那如何给匿名函数传递带有默认值的参数呢

看完上面的介绍之后,有没有觉得对匿名函数很亲切了。

知道匿名函数有什么用呢,看上去好像更麻烦了,没有之前的定义函数的方式好理解。

既然存在这样的一个匿名函数,肯定是有它的一个用途的。那什么时候用匿名函数呢?

例子:

有一个liststr = ["1", "2", "3", "4", "5", "6"]列表,需要把它变成listint = [1,4,9,16,25,36]。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#方法-1
list_str = ["1", "2", "3", "4", "5", "6"]
list_int = []
for i in list_str:
    item = int(i)*int(i)
    list_int.append(item)
print(list_int)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 方法-2
list_str = ["1", "2", "3", "4", "5", "6"]
list_int = list(map(lambda x: int(x)*int(x), list_str))
print(list_int)

解释:

map()函数接收两个参数,一个是函数,一个是Iterable(可迭代对象),map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回,详细用法后面的课程会讲到。 通过对比,发现使用匿名函数非常简单,当然匿名函数的作用远非如此,下面做个简单的总结。

总结归纳:

1.当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。 2.匿名函数只有在调用时,才会创建函数对象和作用域对象。调用完后立即释放,节省内存。适合做回调函数,之后的一个计算器的案例就会有具体讲到。 3.同时用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 叶子陪你玩编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Spring AOP 实践指南
Spring AOP(面向切面编程)是Spring框架的一个关键特性之一。它提供了一种在应用程序中实现横切关注点的方法,这些关注点通常会散布在应用程序的多个模块中,并且与核心业务逻辑存在交叉。
訾博ZiBo
2025/01/06
1380
Spring AOP 实践指南
逐行阅读Spring5.X源码(十一)AOP概念、应用、原理
与OOP对比,面向切面,传统的OOP开发中的代码逻辑是自上而下的,而这些过程会产生一些横切性问题,这些横切性的问题和我们的主业务逻辑关系不大,这些横切性问题不会影响到主逻辑实现的,但是会散落到代码的各个部分,难以维护。AOP是处理一些横切性问题,AOP的编程思想就是把这些问题和主业务逻辑分开,达到与主业务逻辑解耦的目的。使代码的重用性和开发效率更高。
源码之路
2020/09/04
9020
逐行阅读Spring5.X源码(十一)AOP概念、应用、原理
轻松上手Spring AOP,掌握切面编程的核心技巧
Spring框架是我们使用比较多的一个框架,而AOP又是Spring的核心特性之一,本篇文章将介绍一下AOP的切点表达式、通知等特性及如何使用Spring AOP。
索码理
2024/04/15
3330
轻松上手Spring AOP,掌握切面编程的核心技巧
详解Java中高级程序员必须要掌握的Spring Aop(上篇)
在企业级服务中,经常面临多个业务类中需要完成一些相同的事情,如日志记录、异常处理、事物管理、安全管理等,这些多个业务类共同关注的点也叫横切关注点( cross-cutting concern )。如果在每个业务类中都加上这些横切关注点逻辑,不仅工作量会很大,而且容易产生冗余代码。这时候为解决横切关注点的面向切面编程(AOP)应运而生,AOP 补充了面向对象编程(OOP)。OOP 中模块化的关键单元是类,而在 AOP 中模块化的单元是切面。切面支持跨多个类型和对象的关注点(例如事务管理)。
用户3587585
2022/09/21
1.6K0
Spring AOP
在专栏第一篇我们就简单说了Spring框架提供了对AOP的支持,那Spring AOP和AOP有什么不同吗?
终有救赎
2023/10/16
2100
Spring AOP
用心整理 | Spring AOP 干货文章,图文并茂,附带 AOP 示例 ~
Spring AOP 是 Java 面试的必考点,我们需要了解 AOP 的基本概念及原理。那么 Spring AOP 到底是啥,为什么面试官这么喜欢问它呢?本文先介绍 AOP 的基本概念,然后根据 AOP 原理,实现一个接口返回统一格式的小示例,方便大家理解 Spring AOP 到底如何用!
create17
2019/11/13
1.1K0
AOP开发明确的的事项
Spring 框架监控切入点方法的执行。一旦监控到切入点方法被运行,使用代理机制,动态创建目标对象的代理对象,根据通知类别,在代理对象的对应位置,将通知对应的功能织入,完成完整的代码逻辑运行。
楠羽
2023/10/17
2030
AOP开发明确的的事项
spring基础(3:面向切面编程)
  Spring的基础是IOC和AOP,前面两节对IOC和DI做了简单总结,这里再对AOP进行一个学习总结,Spring基础就算有一个初步了解了。
用户2038589
2018/09/06
8050
spring基础(3:面向切面编程)
spring aop理解及使用:我想这回应该可以说清楚了吧
当我们剥开aop的外衣的时候,其实他的核心设计思想就是代理模式;spring中大量用到了代理模式;如果你不太了解代理模式,其实也不影响你对aop的使用;这里我举个生活中的例子,带你了解一下什么代理模式;当你在美团、饿了么点餐的时候,其实就是一个典型的代理模式,美团(代理对象)代理了餐馆(目标对象)将美食(方法)卖给你,同时对你的消费进行了增强(帮你配送、送你优惠券等);帮你配送、送你赠品并不是餐厅做的;而是美团(代理对象)做的;但是这一切并没有影响到你就餐、也没有影响餐厅对商品的销售;aop同样也使用的这个方式,在不影响目标对象的前提下对他的功能进行增强。
一行Java
2022/04/06
4610
spring aop理解及使用:我想这回应该可以说清楚了吧
Spring AOP 是怎么运行的?彻底搞定这道面试必考题
其实, 接触了这么久的 AOP, 我感觉, AOP 给人难以理解的一个关键点是它的概念比较多, 而且坑爹的是, 这些概念经过了中文翻译后, 变得面目全非, 相同的一个术语, 在不同的翻译下, 含义总有着各种莫名其妙的差别. 鉴于此, 我在本章的开头, 着重为为大家介绍一个 Spring AOP 的各项术语的基本含义. 为了术语传达的准确性, 我在接下来的叙述中, 能使用英文术语的地方, 尽量使用英文。
南风
2020/02/17
4.8K0
Spring Aop该如何使用
AOP(Aspect OrientedProgramming),即面向切面编程。本文介绍了AOP的相关概念和术语,用业务场景演示了Spring Aop的使用方式。希望本文对你轻松使用Spring Aop有所帮助。
每周聚焦
2024/11/13
1530
Spring Aop该如何使用
Spring AOP切点表达式详解
面向对象编程,也称为OOP(即Object Oriented Programming)最大的优点在于能够将业务模块进行封装,从而达到功能复用的目的。通过面向对象编程,不同的模板可以相互组装,从而实现更为复杂的业务模块,其结构形式可用下图表示:
田维常
2019/07/16
1.6K0
Spring AOP切点表达式详解
Spring AOP理解与研发使用
Spring AOP是一种基于方法的AOP,只能用在方法上,在业务上我们一般使用Spring AOP去约定编程一套业务逻辑织入到相关的业务处理中,并抽取通用逻辑默认加入到相关业务中(前置处理后置业务处理或异常处理等),同时在应用上在想对一些现成业务进行干预处理时都会使用(比方说可以考虑对特定方法进行mock操作等处理)。Spring AOP和我们平时开发中使用的约定编程基本类似,本质都是通过约定对相应的方法通过动态代理技术织入约定流程中。本次一些基本的理念还是直接通过自己看过的一些书籍和博客进行总结了,实际应用上基本是结合自己的开发经验进行了一些基本的应用分享,如果有理解错误的地方请留言指正,谢谢!
全栈程序员站长
2022/09/14
2760
AOP切面编程
如果说 IoC 是 Spring 的核心,那么面向切面编程就是 Spring 最为重要的功能之一了,在数据库事务中切面编程被广泛使用。
用户3467126
2019/08/12
6460
Spring中的AOP以及切入点表达式和各种通知
上篇讲了动态代理:Java中动态代理的两种方式JDK动态代理和cglib动态代理以及区别
全栈程序员站长
2022/09/18
3590
Spring中的AOP以及切入点表达式和各种通知
【JavaEE进阶】Spring AOP
AOP(Aspect Oriented Programming):⾯向切面编程,它是⼀种思想,它是对某⼀类事情的 集中处理。比如在我们之前我的博客系统中所学习的用户登录权限的效验,没学 AOP 之前,我们所有需要判断用户登录的页面(中的方法),都要各自实现或调用用户验证的方法.但是有了AOP之后,我们只需要在某一处配置一下,所有需要判断用户登录页面(中的方法)就可以全部实现用户登录验证了,不再需要每个方法中都写相同的用户登录验证了.
xxxflower
2023/10/16
2790
【JavaEE进阶】Spring AOP
Spring Aop 扫盲
面向切面编程(Aspect-oriented Programming,俗称AOP)提供了一种面向对象编程(Object-oriented Programming,俗称OOP)的补充,面向对象编程最核心的单元是类(class),然而面向切面编程最核心的单元是切面(Aspects)。与面向对象的顺序流程不同,AOP采用的是横向切面的方式,注入与主业务流程无关的功能,例如事务管理和日志管理。
cxuan
2019/09/09
6610
Spring Aop 扫盲
深入浅出Spring AOP:让你的代码更优雅
在现代Java开发中,Spring框架几乎是无处不在的。作为Spring框架的一部分,Spring AOP(面向切面编程)提供了一种强大且灵活的方式来处理横切关注点,比如日志记录、安全检查、事务管理等。如果你还没有完全掌握Spring AOP,那么这篇文章将带你深入了解它的工作原理和应用场景。
AI码师
2024/05/27
1.3K0
深入浅出Spring AOP:让你的代码更优雅
Spring-AOP
AOP引介 AOP(Aspect Oriented Programing)面向切面编程采用横向抽取机制,以取代传统的纵向继承体系的重复性代码(如性能监控/事务管理/安全检查/缓存实现等). 横向抽取代码复用: 基于代理技术,在不修改原来代码的前提下,对原有方法进行增强. Spring AOP 历史 1.2开始, Spring开始支持AOP技术(Spring AOP) Spring AOP使用纯Java实现,不需要专门的编译过程和类加载器,在运行期通过代理方式向目标类织入增强代码. 2.0之后, 为了简化A
Java帮帮
2018/03/16
1.2K1
Spring学习总结(三)——Spring实现AOP的多种方式
AOP(Aspect Oriented Programming)面向切面编程,通过预编译方式和运行期动态代理实现程序功能的横向多模块统一控制的一种技术。AOP是OOP的补充,是Spring框架中的一个重要内容。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。AOP可以分为静态织入与动态织入,静态织入即在编译前将需织入内容写入目标模块中,这样成本非常高。动态织入则不需要改变目标模块。Spring框架实现了AOP,使用注解配置完成AOP比使用XML配置要更加方便与直观。上一篇随笔中已经详细讲了代理模式。
张果
2022/05/09
4670
Spring学习总结(三)——Spring实现AOP的多种方式
相关推荐
Spring AOP 实践指南
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验