functools基本

本文介绍了Python标准库中的functools模块,这是一个提供高阶函数的模块,可以用于包装可调用对象并返回新的可调用对象。文章通过具体实例展示了如何使用functools.partial来冻结部分函数参数以简化函数调用。

functools:Higher-order functions and operations on callable objects

functools模块是一个高阶函数,即在函数上(any callable object)进行操作,并返回函数。
用一些默认参数包装一个可调用对象,返回结果是可调用对象,并且可以像原始对象一样对待

冻结部分函数位置函数或关键字参数,简化函数,更少更灵活的函数参数调用

functools.partial

def partial(func, *args, **keywords):
    def newfunc(*fargs, **fkeywords):
        newkeywords = keywords.copy()
        newkeywords.update(fkeywords)
        return func(*args, *fargs, **newkeywords)
    newfunc.func = func
    newfunc.args = args
    newfunc.keywords = keywords
    return newfunc

例子:

def power(base, exponent):
    return base ** exponent

from functools import partial

square = partial(power, exponent=2)

test = square(5)
print(test)

25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值