匿名函数

匿名函数

lambda关键字在Python表达式内部创建匿名函数

然后,Python简单的语法限制了lambda函数的定义体只能使用纯表达式。lambda函数的定义体中不能赋值,也不能使用while和try等Python语句

在参数列表中最适合使用匿名函数

# 使用lambda表达式反转拼写,然后依次给单词列表排序
fruits=['strawberry','fig','apple','cherry','respberry','banana']
sorted(fruits,key=lambda word:word[::-1])
['banana', 'apple', 'fig', 'respberry', 'strawberry', 'cherry']

除了作为参数传给高阶函数之外,Python很少使用匿名函数。由于语法上的限制,复杂的lambda表达式要么难以阅读,要么无法写出

lambda表达式重构秘籍

  1. 编写注释,说明lambda表达式的作用
  2. 研究一会儿注释,并找出一个名称来概括注释
  3. 把lambda表达式转换成def语句,使用那个名称来定义函数
  4. 删除注释

lambda句法只是语法糖:与def语句一样,lambda表达式会创建函数对象。这是Python中几种可调用对象的一种

上一篇:EF中lambda表达式实现LIKE模糊查询


下一篇:Python中lambda表达式的优缺点及使用场景