python中创建匿名函数

一、使用场合:

在python3中,想处理一个简单的逻辑功能可以使用lambda来创建匿名函数,比如某个函数的参数或某句话的逻辑等

  • lambda只是一个表达式,函数体比def简单很多。
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
  • lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
  • 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

二、语法

lambda [arg1 [,arg2,.....argn]]:expression

三、使用举例举例

1、匿名函数仅传入两个值,实现简单的判断大小功能(三元表达式)

maxx = lambda x,y:x if x>y else y
    print("最大值为:",maxx(10,15))
    print("最大值为:",maxx(20,15))
# >>>最大值为: 15
# >>>最大值为: 20

2、匿名函数的参数是有默认值的

summ = lambda a, b=30: a + b
print('带有默认值:', summ(10))
print('修改默认值:', summ(10, b=1)) 
 
# >>> 带有默认值: 40
# >>> 修改默认值: 11

3、定义好匿名函数后可直接在后面加入参数值从而直接使用

summ2 = (lambda x, y: x + y)(3, 4)
print('在函数后添加值:3 + 4 =', summ2)

# >>> 在函数后添加值:3 + 4 = 7

四、函数与匿名函数的区别

普通函数可以实现更复杂的功能,且普通函数更适用于当这个函数需要多次引用的场景下,定义的函数可以引用到其他类中;

而匿名函数只能实现简单的逻辑,并且只能在当前类下引用,在平时编程当中匿名函数(lambda)主要用于要传入参数的地方,对传入的参数进行简单的判断功能

五、总结

匿名函数的定义比普通函数精简很多,能够实现简单的逻辑功能,使得代码看起来更简洁,易于阅读,一般只使用一次,不会被多次引用。此外匿名函数还可以进行嵌套与装饰器一起使用。

猜你喜欢

转载自blog.csdn.net/weixin_46769840/article/details/127336176