【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('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/11322792.html

时间: 2024-10-04 15:53:06

【Python functools.partial 偏函数】 -- 2019-08-08 18:01:31的相关文章

【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('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

functools.partial 偏函数

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

python之6-5偏函数

functools.partial 偏函数的作用是简化操作,简化什么操作呢?就是当我们有一个已知函数A,且这个函数包含有某个或多个参数A1,通过固定这个参数A1,我们可以自己编写一个新函数B,来减少代码量,偏函数的作用就是通过偏函数调用A,固定A1,形成一个新函数 比如int()函数,这个函数将任何进制转换为十进制,参数是base,正常调用的代码如下: #!/usr/bin/env python # coding=utf-8 print int('11',base=2) def int2(x,b

python partial偏函数

python partial偏函数 from functools import partial def func(a,b,c,d): return a + b + c + d tes = partial(func,1) print(tes) res = tes(2,3,4) print(res) 原文地址:https://www.cnblogs.com/baohanblog/p/12532638.html

偏函数-functools.partial

1.概念:偏函数是2.5版本以后引进来的东西.属于函数式编程的一部分,使用偏函数可以通过有效地"冻结"那些预先确定的参数,来缓存函数参数,然后在运行时,当获得需要的剩余参数后,可以将他们解冻,传递到最终的参数中,从而使用最终确定的所有参数去调用函数.2.代码举例: import functools def index(a1,a2): return a1 + a2 # 原来的调用方式 # ret = index(1,23) # print(ret) # 偏函数,帮助开发者自动传递参数 n

python 高阶函数: Partial(偏函数)

格式: functools.partail(函数,函数的参数) -------> int(x, base) ----->  functools.partial(int, base) 一.int函数 官网介绍:class int(x, base=10)  #x为字符串数字, 默认该字符串数字是十进制数, 返回值是十进制数 #!/usr/bin/python ##普通使用print "int('10001', 2):", int('10001', 2)  #字符串数字'1000