【Python functools.partial 偏函数】 -- 2019-08-09 12:09:26

原文: http://106.13.73.98/__/124/

Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function)。要注意,这里的偏函数和数学意义上的偏函数不一样。

functools.partial可以帮助我们创建一个偏函数,如下示例:

"""自己定义的偏函数"""

def int1(x, base=2):
    return int(x, base)

print(int1('10000000'))  # 128

# =======================================
# =======================================

"""通过functools.partial定义的偏函数"""

import functools

int2 = functools.partial(int, base=2)

print(int1('10000000'))  # 128

# 上面仅仅是把base参数重设默认值为2,所以还是可以指定base的值的
print(int1('10101010', base=10))  # 10101010

所以,简单总结functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新函数,掉用这个新函数会更简单。

创建偏函数时,实际上可以接收函数对象*args**kwargs这3个参数
***
像下面这样:

int2 = functools.partial(int, base=2)

实际上是固定了int()函数的关键字参数base,也就是:

int2('10000000')

相当于:

kwargs = {'base': 2}
int('10000000', **kwargs)

再比如:

max2 = functools.partial(max, 10)

实际上会把10作为*args的一部分自动加到左边,也就是说:

max2(2, 3, 4)

相当于:

args = (10, 2, 3, 4)
max(*args)

结果为10.

小结

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

原文: http://106.13.73.98/__/124/

原文地址:https://www.cnblogs.com/gqy02/p/11326435.html

时间: 2024-10-05 06:43:31

【Python functools.partial 偏函数】 -- 2019-08-09 12:09:26的相关文章

【Python functools.partial 偏函数】 -- 2019-08-08 18:01:31

原文: http://106.13.73.98/__/124/ Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function).要注意,这里的偏函数和数学意义上的偏函数不一样. functools.partial可以帮助我们创建一个偏函数,如下示例: """自己定义的偏函数""" def int1(x, base=2): return int(x, base) print(int1('100000

【Python functools.partial 偏函数】 򟱾

原文: http://blog.gqylpy.com/gqy/349 " Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function).要注意,这里的偏函数和数学意义上的偏函数不一样. functools.partial可以帮助我们创建一个偏函数,如下示例: """自己定义的偏函数""" def int1(x, base=2): return int(x, base) print(in

Python functools.partial

def declare_consumer(self, consumer_cls, topic, callback): """Create a Consumer using the class that was passed in and add it to our list of consumers """ def _connect_error(exc): log_info = {'topic': topic, 'err_str': str(ex

functools.partial偏函数

functools.partial偏函数 之前我们提到了functools.warp能在装饰器中保存原函数的参数等属性 今天我们再来说说functools.partial def func(a1,a2,a3): return a1 + a2 + a3 v1 = func(1,2,3) new_func = functools.partial(func,111,2) new_func(3) 本来我们执行func函数需要3个参数,如果使用functools.partial(func,111,2)对f

我的Python成长之路---第一天---Python基础(1)---2015年12月26日(雾霾)

2015年12月26日是个特别的日子,我的Python成之路迈出第一步.见到了心目中的Python大神(Alex),也认识到了新的志向相投的伙伴,非常开心. 尽管之前看过一些Python的视频.书,算是有一点基础.但在这里我要保持空杯心态,一切从头开始.好了不多说,Let's Python!!!! 一.Python简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言.目前Python已经成为实际上除了中国最流行的开发语

functools.partial 偏函数

import functools int2 = functools.partial(int, base=2) int2('1000000') 固定一个参数

我的Python成长之路---第一天---Python基础(2)---2015年12月26日(雾霾)

三.数据类型 Python基本类型(能够直接处理的数据类型有以下几种)主要有5种 1.整数(int) Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等. 2.浮点数(float) 浮点数也就是数学中的小数.由于整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差.需要注意. 3.字符串 字符串是以单引号'或双引号"括起来的任意文本,比如'abc',"xy

我的Python成长之路---第一天---Python基础(6)---2015年12月26日(雾霾)

七.列表——list Python的列表是一种内置的数据类型,是由Python的基本数据类型组成的有序的集合.有点类似C语言的数组,但与数组不同的是,Python在定义列表的时候不用指定列表的容积(长度),可根据需要任意扩展,另外列表的内的元素可以是不同的数据类型,当然既然是任何数据类型,当然也包括另一个列表也就是嵌套.Python中列表使用中括号[]括起来,例如[1,2,True,'ABC',[5,'678']]. 1.列表的切片 通字符串一样列表也支持切片操作,例如我们有一个列表A_list

我的Python成长之路---第一天---Python基础(3)---2015年12月26日(雾霾)

四.变量和常量 变量是用来存储程序运行期间需要临时保存可以不断改变的数据的标识符.Python有自身的内存回收机制,所以在开发过程中不用考虑变量的销毁等 Python中的变量名命名有如下规则: 1.变量名必须是字母.数字和下划线的组合 2.数字不能开头 3.不能使用Python保留的关键字入print.id等(注意这个不是Python强制的,但是如果使用关键字定义了会是改变关键原来的用途) 关于变量名的一些建议: 1.变量名最好有意义,尽量不要使用a = 1, x = 'ABC',var = 1