栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

儿童python教程128:Python partial偏函数及用法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

儿童python教程128:Python partial偏函数及用法

简单的理解偏函数,它是对原始函数的二次封装,是将现有函数的部分参数预先绑定为指定值,从而得到一个新的函数,该函数就称为偏函数。相比原函数,偏函数具有较少的可变参数,从而降低了函数调用的难度。

定义偏函数,需使用 partial 关键字(位于 functools 模块中),其语法格式如下:

偏函数名 = partial(func, *args, **kwargs)

其中,func 指的是要封装的原函数,*args 和 **kwargs 分别用于接收无关键字实参和关键字实参。

有关 *args 和 **kwargs 作为函数形参更详细的解释,可阅读《Python函数可变参数(*args, **kwargs)》一节。

下面举几个例子,让大家可以直观感受一下偏函数的用法和功能。

【例 1】

from functools import partial

#定义个原函数

def display(name,age):

    print("name:",name,"age:",age)

#定义偏函数,其封装了 display() 函数,并为 name 参数设置了默认参数

GaryFun = partial(display,name = 'Gary')

#由于 name 参数已经有默认值,因此调用偏函数时,可以不指定

GaryFun(age = 13)
运行结果为:

name: Gary age: 13

注意,此程序的第 8 行代码中,必须采用关键字参数的形式给 age 形参传参,因为如果以无关键字参数的方式,该实参将试图传递给 name 形参,Python解释器会报 TypeError 错误。

【例 2】

from functools import partial



def mod( n, m ):

  return n % m

#定义偏函数,并设置参数 n 对应的实参值为 100

mod_by_100 = partial( mod, 100 )



print(mod( 100, 7 ))

print(mod_by_100( 7 ))
运行结果为:

2
2


结合以上示例不难分析出,偏函数的本质是将函数式编程、默认参数和冗余参数结合在一起,通过偏函数传入的参数调用关系,与正常函数的参数调用关系是一致的。

偏函数通过将任意数量(顺序)的参数,转化为另一个带有剩余参数的函数对象,从而实现了截取函数功能(偏向)的效果。在实际应用中,可以使用一个原函数,然后将其封装多个偏函数,在调用函数时全部调用偏函数,一定程序上可以提高程序的可读性。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/805962.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号