语法
lambda_expr ::= lambda [parameter_list]: expression
官方文档介绍:
Lambda expressions (sometimes called lambda forms) are used to create anonymous functions.
简单说:
1. 匿名函数
2. 只有一句代码
3. 通常在需要函数作为参数的情况下使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| lambda_expr_nocond = lambda x: x * 2 print(lambda_expr_nocond(5)) print(lambda_expr_nocond(3))
x = lambda a, b, c: a + b + c print(x(5, 6, 2))
numbers = [1, 2, 3, 4, 5] squared_numbers = list(map(lambda num: num ** 2, numbers)) print(squared_numbers)
numbers = [1, 2, 3, 4, 5, 6, 7, 8] even_numbers = list(filter(lambda x: x % 2 == 0, numbers)) print(even_numbers)
|
应用场景:
比如在PyQt
在信号传值的时候,可以使用lambda 匿名函数进行传递
参考个人工程
在项目中
1 2 3 4 5 6 7 8 9 10
| def check_uop(self, sn): uop_thread.finished.connect(lambda response_text: check_uop_finish(self, response_text)) uop_thread.start()
def check_uop_finish(self, res): status = False
|
上述代码中connect(...)
需要函数名称作为参数,但是需要调用的函数需要参数;此时可以使用lambda
匿名一个新函数来完成参数传递