Python partial 返回带参的函数对象

from functools import partial

partial 传入参数
第一个为一个可调用对象,一般为一个函数
后面的参数 是函数的入参
最后返回一个新的可调用对象
partial中可以不用把函数的参数全部传入
没有传入的参数,可以当做返回对象的如参

编写python程序时候,可能会出现这么一种情况。

一个函数的参数,需要传入一个函数名,如下、

def func_a():
    pass
def main(func):
    func()

那么,如果func_a是带参数的怎么办呢? 我们不能把func_a(参数)传入到main中
只能传入函数名func_a
partial,为我么解决了这个问题

使用partial,包装一个函数,返回一个函数名。

from functools import partial
new_func_name =  partial(func_a,参数)

"""
后面的事情就是把 新的函数名 传入到 main就可以了
"""

这个和c++bind 功能类似
我们想预先把一个函数的入参填满,然后直接func()调用。
但是不是所有的函数都有默认参数,这时候就需要partial

from functools import partial

def f(a,b,c,d):
    print(a,b,c,d)
f1 = partial(f,1)
f1(2,3,4)

"""
打印 1 2 3 4
f1 = partial(f,1) 这一句a=1
f1(2,3,4) 就是b c d 为 2 3 4
"""


def func(a,b,text=5):
    print(a,b,text)

func1 =  partial(func,5,text=10)
func1(6)


def func_text(a,b,c):
    print(a,b,c)

func1 =  partial(func_text,1,2,3)
func1()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值