专栏首页一番码客python套路-函数式编程之匿名函数与偏函数

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

匿名函数

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

lambda 参数1[, 参数2, ...参数n]:表达式

lambda函数有如下特点:

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

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

!usr/bin/env python
func = lambda x,y:x+y
print(func(1,2))

说明:

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

偏函数

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

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

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

import functools
int2 = functools.partial(int,base=2)
print(int2('0011'))
print(int2('1111'))

说明:

  • int()函数功能时把字符串转换为整数,int()函数的提供了一个参数base,其默认值为10,即将字符串转换为10进制。
  • 使用functools.partial()函数可以通过将base设置为2构建一个转换为2进制的偏函数。
  • 使用偏函数的好处是当大量需要改变函数的默认值的时候,可以避免重复赋默认值。

本文分享自微信公众号 - 一番码客(efonmark),作者:一番

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python之函数式编程

    没有“边界效应”的函数:在任何情况下,使用相同参数调用函数产生的结果始终相同,即没有函数内部状态的变化会影响输出结果。在python中,如果函数里包含有全局变量...

    efonfighting
  • python函数式编程之高阶函数

    这里以内置函数abs()为例,可以把abs函数赋值给另一个变量,然后这个变量就等同于abs函数了。

    efonfighting
  • Python函数式编程之内置高阶函数

    前面我们介绍了高阶函数,python自带了一些高阶函数,也就是python内置高阶函数。

    efonfighting
  • 一文读懂支持向量积核函数(附公式)

    来源:jerrylead 本文通过多个例子为你介绍支持向量积核函数,助你更好地理解。 核函数(Kernels) 考虑我们最初在“线性回归”中提出的问题,特征是房...

    数据派THU
  • 详解javascript中的即时函数,内部函数,能重写自身的函数即时函数内部函数返回函数的函数能重写自己的函数小结

    在上篇谈到匿名函数和回调函数的基础上,我们接着介绍javascript中的即时函数,内部函数,返回函数的函数,能重写自身的函数等几种常见的函数类型及使用方法。只...

    desperate633
  • 程序员的函数

    在对函数求导数或者微分的过程中,如果能够知道原函数的图像,对照图像去理解各点的导数、微分、梯度等概念,比纯粹靠函数式理解要直观得多。

    叶锦鲤
  • 写 Python 代码不可不知的函数式编程技术

    近来,越来越多人使用函数式编程(functional programming)。因此,很多传统的命令式语言(如 Java 和 Python)开始支持函数式编程技...

    机器之心
  • 机器学习中的数学:为什么对数如此重要

    当然,如果你是一个忙碌的人,没有时间去健身房,把楼梯当作是有氧运动的简易版,那么走楼梯会更好。但是除此之外,你更可能选择乘电梯。

    deephub
  • 五撩Python

    重复,再重复,你就是专家。 --曾子 1、起手 来说函数。 2、函数 函数就是整理好的一堆可重用的代码,有输入,然后就有输出。 比如我们计算折扣,输入是消费者的...

    企鹅号小编
  • 写 Python 代码不可不知的函数式编程技术

    近来,越来越多人使用函数式编程(functional programming)。因此,很多传统的命令式语言(如 Java 和 Python)开始支持函数式编程技...

    CDA数据分析师

扫码关注云+社区

领取腾讯云代金券