前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python套路-函数式编程之匿名函数与偏函数

python套路-函数式编程之匿名函数与偏函数

作者头像
efonfighting
发布2020-05-16 13:43:10
6370
发布2020-05-16 13:43:10
举报
文章被收录于专栏:一番码客一番码客

匿名函数

当调用函数时, 有时不需要显示定义好一个函数, 直接传入一个匿名函数更为方便。python可使用lambda表达式创建匿名函数。

代码语言:javascript
复制
lambda 参数1[, 参数2, ...参数n]:表达式

lambda函数有如下特点:

  • lambda只是一个表达式,函数体比def简单很多;
  • lambda的主题有且只有一个表达式,而不是代码块;
  • lambda函数拥有自己的命名空间,不能访问自己参数列表之外或者全局命名空间里的参数。

例子一:使用匿名函数实现两个数字求和功能:

代码语言:javascript
复制
!usr/bin/env python
func = lambda x,y:x+y
print(func(1,2))

说明:

  • 匿名函数由于没有函数名称,因此可以避免函数名称的冲突。
  • 匿名函数同样可以作为返回值返回。

偏函数

偏函数是functools.partial()函数,将原函数当做第一个参数传入,原函数的各个参数依次作为partial()函数后续的参数。

functools.partial()的作用是把一个函数其中的一些参数设置为默认值, 返回一个新的函数, 调用这个新的函数更加简单。

例子一:将int()函数封装为默认base为2的偏函数。

代码语言:javascript
复制
import functools
int2 = functools.partial(int,base=2)
print(int2('0011'))
print(int2('1111'))

说明:

  • int()函数功能时把字符串转换为整数,int()函数的提供了一个参数base,其默认值为10,即将字符串转换为10进制。
  • 使用functools.partial()函数可以通过将base设置为2构建一个转换为2进制的偏函数。
  • 使用偏函数的好处是当大量需要改变函数的默认值的时候,可以避免重复赋默认值。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一番码客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 匿名函数
  • 偏函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档