admin管理员组文章数量:1794759
Python中的匿名函数
1.概念
匿名函数其实就是lambda表达式
语法 : lambda 形参列表:函数体
# 匿名函数 def text(x, y): result = x + y lambda x, y: x + y """ def text(x, y) 是def的声明部分,return x+y 是实现部分 lambda x,y是声明部分,x + y是实现部分 """ 2. lambda 的特点以及优缺点2.1 lambda 是对def标准形式定义函数的简化,因为只有一行代码 2.2 lambda 表示匿名函数,所以默认参数,关键字参数以及不定长参数都可以正常使用 2.3 lambda 仅仅是一个表达式,而不是一个语句 2.4 lambda 的主体部分是一个单个的语句,而不是代码块 2.5 lambda 拥有自己的命名空间,不能访问自有参数列表之外的或者全局变量 2.6 lambda 只能实现简单的逻辑,如果逻辑复杂且代码量较大,则不建议使用lambda, 降低代码的可读性,为后期的代码维护增加困难 2.7 在非多次调用函数的情况下,lambda简单而且性能较高
3. 匿名函数和正常函数的区别 # 1 def test(): print("test") # 打印出函数,和函数的类型 print(test, type(test)) test() # 调用函数 ''' 匿名函数不需要使用return进行值的返回,只需要将结果书写在函数体的部分, 值会被自动返回 ''' r1 = lambda: True print(r1,type(r1)) print(r1())打印的结果:
根据运行结果可以发现,
①定义的函数,有test的函数名称,而使用匿名函数的 没有名称 函数的名称为 lambda函数
② 正常的函数调用时直接函数名(),而使用匿名函数是需要打印,或者赋值打印的
4.匿名函数的函数体可以直接写打印语句,但是返回值则为None # 2. def test1(): print("test1") print(test1()) r2 = lambda: print("lambda_print") print(r2())打印结果
5.有参数的匿名函数 # 3. 匿名函数的参数 r3 = lambda x: x ** 3 # 传递一个x,然后给x三次方,并返回 print(r3(2)) # 打印2的三次方 r4 = lambda x, y: x + y # 传递一个x和y,然后给相加,并返回 print(r4(3, 5)) # 打印3+5
打印结果
6.匿名函数可以使用默认参数,关键字参数,不定长参数 # 4. 匿名函数可以使用默认参数,关键字参数,不定长参数 r5 = lambda x, y=5: x + y # 默认参数 print(r5(2)) print(r5(2, 10)) print(r5(x=8, y=9)) # 关键字参数 r6 = lambda *a: a # 不定长参数 ,*a:代表可以输入多个或者0个值 print(r6(1, 2, 3, 4, 5, 6))7. 练习
# 需求:比较两个数的大小,返回较大的数 # 1.用正常的方式 def compare(num1, num2): if num1 >= num2: return num1 else: return num2 print("传统的方式:", compare(9, 6)) # 2.用匿名函数 r7 = lambda num1, num2: num1 if (num1 >= num2) else num2 print("使用匿名函数:", r7(9, 3)) # 3.使用匿名函数另一种方式,直接赋值 r8 = (lambda num1, num2: num1 if (num1 >= num2) else num2)(9, 6) print("使用匿名函数另一种方式:", r8)运行结果, 可以看出, 对于比较简单的逻辑,我们可以使用lambda的方式进行
版权声明:本文标题:Python中的匿名函数 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686493185a73670.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论