一、什么是 lambda函数:
lambda函数是一个匿名函数,不需要定义函数的具体名字。
二、什么情况使用lambda函数:
lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,以下两种定义函数的方式结果是一样的。
def f ( x ,y):
return x * y
g = lambda x ,y: x * y
三、如何使用lambda函数:
1、 lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值。
2、lambda 函数不能包含命令,后只能有一个表达式,lambda函数会自动返回结果。
3、
格式 lambda x ,y: x * y
冒号前为变量名,冒号后为表达式
lambda函数用法,见以下:
代码引用自此链接
def calc_2_num(x, y, fun):
return fun(x, y)
def test_callback(x, y, callback):
result = x + y
callback(result)
if __name__ == '__main__':
fun_add = lambda x, y: x + y
fun_mul = lambda x, y: x * y
# 函数参数演示
print(calc_2_num(2, 4, fun_add))
print(calc_2_num(2, 4, fun_mul))
print(calc_2_num(2, 4, lambda x, y: x ** y))
# 函数回调演示
test_callback(3, 6, lambda val: print("3 + 6 =", val))
# 匿名类
obj = type("", (), {
'__init__': lambda self, **kwargs: self.__dict__.update(kwargs),
'__eq__': lambda self, other: self.__dict__ == other.__dict__,
})(
DEBUG=True,
say=lambda: print("Hello"),
)
print(obj)
print(obj.DEBUG)
obj.say()
四、lambda和def区别
① python lambda会创建一个函数对象,但不会把这个函数对象赋给一个标识符,而def则会把函数对象赋值给一个变量。
② python lambda它只是一个表达式,而def则是一个语句。
`