博客
关于我
Python 之匿名函数和偏函数
阅读量:795 次
发布时间:2023-03-06

本文共 980 字,大约阅读时间需要 3 分钟。

匿名函数与偏函数

匿名函数

Python允许使用lambda关键字创造匿名函数,lambda表达式用于定义匿名函数,它返回可调用的函数对象,语法如下:

lambda arg1, arg2, … : expression

例如:

add = lambda a,b=2 : a + bprint(add(3))       # 5print(add(3, 10))   # 13

匿名函数具有比较浓郁的函数式编程风格,例如:

foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]print(filter(lambda x: x % 3 == 0, foo))print(map(lambda x: x % 3 == 0, foo))

使用lambda表达式,可以避免定义函数,从而使得代码更简洁。


偏函数

Python中的函数参数可以带默认值,这样能够降低函数调用的复杂度,例如:

def add(a, b, c=100):    return a + b + cprint(add(40, 30))  # 170

当函数的参数个数太多,需要简化时,使用偏函数(functools.partial)可以创建一个新的函数,这个新函数可以固定住原函数的部分参数,从而在调用时更简单。

例如:

from functools import partialdef add(a, b, c=100):    return a + b + cplus = partial(add, c=100)print(plus(40, 30))     # 170print(plus(-20, 30))    # 110

上面的例子中,partial(add, c=100)使用了关键字参数c=100。如果只是简单地使用partial(add, 100),那么100会被认为是参数a的固定值。例如:

from functools import partialdef add(a, b, c=100):    return a + b + cplus = partial(add, 100)print(plus(40))     # 240print(plus(40, 50))  # 190

这里,plus(40)传入的40会被赋值给b,而c使用默认参数100。

转载地址:http://gbofk.baihongyu.com/

你可能感兴趣的文章
python 使用execjs 报编码错误解决办法,UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xac in position 145: il
查看>>
python 使用filetype校验文件
查看>>
Python 使用flush函数将缓冲区数据立即写磁盘
查看>>
python 使用in判断不准确,in不好使
查看>>
Python 使用pandas 进行查询和统计详解
查看>>
Redis 配置文件redis.conf详细解释
查看>>
python网络爬虫(2)——scrapy框架的基础使用
查看>>
python网络爬虫实例教程试读_Python网络爬虫实战教程(全套完整版) - 学途无忧网 - 做技术的王者 - Powered By EduSoho...
查看>>
Python 使用哈希函数用于加密
查看>>
Python 依赖管理的革新——Poetry 深度解析
查看>>
python 保留精度及增加去除数字的千位分隔符(金额化数字)
查看>>
python 倒计时 9,8,7,。。。。。。0
查看>>
Python 入门开发学习笔记之数据的增删改查
查看>>
Python 入门教程(2)搭建环境 2.4、VSCode配置Node.js运行环境
查看>>
Python 八大排序算法合集
查看>>
python 关于epoll的学习
查看>>
Python 内存管理
查看>>
Python 内嵌函数:它们有什么用处?
查看>>
Python 内置 sum 函数 vs. for 循环性能
查看>>
python 内置slice的用法
查看>>