Python-匿名函数

简介: Python-匿名函数

匿名函数


什么是匿名函数?


顾名思义,即是不需要显式的指定函数名。


匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。


用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数:


有些函数在代码中只用一次,而且函数体比较简单,使用匿名函数可以减少代码量


640 (4).jpg


Lambda 关键字在Python表达式内创建匿名函数,然而,Python简单的语法限制了lambda函数的定义体只能使用lambada纯表达式。(不能使用while、for、try等语句)


def f1(x, y):
    return x ** y
f2 = lambda x, y: x ** y
print(f1(2, 3))
print(f2(2, 3))


lambda语法句法只是语法糖,与def 语句一样,lambda表达式会创建函数对象。


除了作为参数传递给高阶函数之外,Python相对较小使用匿名函数。由于lambda等限制这导致lambda难以被理解,或者写出。


Lundh提出的lambda表达式重构秘诀


如果使用lambda表达式导致一段代码难以阅读或理解。你可以参考这样的思路去重构


  1. 测试,捋清lambda执行的效果即实现的功能。并编写注释


  1. 研究注释,找出相适合的变量名进行概括


  1. 把lambda表达式转换成def,并定义


  1. 测试其效果


lambda 配合Map函数


map(__func,__iter...)


l1 = [_ for _ in range(10)]
def f1(x, y):
    return x ** y
def f2(x, y):
    return x ** y
m1 = map(f2, l1, l1)
m2 = map(f1, l1, l1)
m3 = map(lambda x, y: x ** y, l1, l1)
print(list(m1))
print(list(m2))
print(list(m3))


还有更多性能更高、写法更简洁的用法期待我们去学习、探索、挖掘

目录
相关文章
|
3月前
|
Python
【python从入门到精通】-- 第五战:函数大总结
【python从入门到精通】-- 第五战:函数大总结
97 0
|
2月前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
138 67
|
27天前
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
48 18
|
19天前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
46 8
|
28天前
|
Python
Python中的函数
Python中的函数
40 8
|
2月前
|
监控 测试技术 数据库
Python中的装饰器:解锁函数增强的魔法####
本文深入探讨了Python语言中一个既强大又灵活的特性——装饰器(Decorator),它以一种优雅的方式实现了函数功能的扩展与增强。不同于传统的代码复用机制,装饰器通过高阶函数的形式,为开发者提供了在不修改原函数源代码的前提下,动态添加新功能的能力。我们将从装饰器的基本概念入手,逐步解析其工作原理,并通过一系列实例展示如何利用装饰器进行日志记录、性能测试、事务处理等常见任务,最终揭示装饰器在提升代码可读性、维护性和功能性方面的独特价值。 ####
|
2月前
|
Python
Python中的`range`函数与负增长
在Python中,`range`函数用于生成整数序列,支持正向和负向增长。本文详细介绍了如何使用`range`生成负增长的整数序列,并提供了多个实际应用示例,如反向遍历列表、生成倒计时和计算递减等差数列的和。通过这些示例,读者可以更好地掌握`range`函数的使用方法。
54 5
|
3月前
|
Python
Python之函数详解
【10月更文挑战第12天】
Python之函数详解
|
3月前
|
存储 数据安全/隐私保护 索引
|
2月前
|
测试技术 数据安全/隐私保护 Python
探索Python中的装饰器:简化和增强你的函数
【10月更文挑战第24天】在Python编程的海洋中,装饰器是那把可以令你的代码更简洁、更强大的魔法棒。它们不仅能够扩展函数的功能,还能保持代码的整洁性。本文将带你深入了解装饰器的概念、实现方式以及如何通过它们来提升你的代码质量。让我们一起揭开装饰器的神秘面纱,学习如何用它们来打造更加优雅和高效的代码。