python高阶编程(六):偏函数

partial函数用于预先设置函数参数,它接受一个函数和可变数量的位置参数及关键字参数。在实例中,展示了如何使用partial创建固定部分或全部参数的新函数,以及处理内置函数和自定义函数的情况。通过partial,可以更灵活地控制函数调用的行为。
摘要由CSDN通过智能技术生成

partial函数的作用就是:将所作用的函数作为partial()函数的第一个参数,原函数的各个参数依次作为partial()函数的后续参数,原函数有关键字参数的一定要带上关键字,没有的话,按原有参数顺序进行补充。

(1)第一部分也就是第一个参数,是一个函数,这个函数可以是你定义的,也可以是Python内置函数

(2)第二部分是一个可变参数,*args,比如内置函数max的参数就是一个可变参数,max(1,2,3,4,5)=5

    f1 = partial(max,1,2,100)
    print(f1(10,101)) # 101
    print(f1(10,20)) # 100

(3)第三部分是一个关键字参数

from functools import partial


def multiply(a, b):
    return a * b

if __name__ == '__main__':
    # 固定全部参数
    f = partial(multiply, a=1, b=2)
    result2 = f(a=10)  # 20
    print(result2)
    result3 = f(b=10)  # 10
    print(result3)
    result4 = f(a=10,b=6)  # 60
    print(result4)
    result1 = f(10)  # 报错:got multiple values for argument 'a',按位置参数传参,10传给a参数
    print(result1)
    
    # 固定部分参数
    f2 = partial(multiply, b=2)
    result2 = f2(a=10)  # 20
    print(result2)
    result3 = f2(b=10)  # 报错:missing 1 required positional argument: 'a'
    print(result3)
    result4 = f2(a=10,b=6)  # 60
    print(result4)
    result1 = f2(10)  #20,10传给了a参数
    print(result1)
    
    # 固定位置参数
    f3 = partial(multiply, 2) # 按位置参数传参,2传给了a参数,不可更改
    result2 = f3(a=10)  # 报错:missing 1 required positional argument: 'a'
    print(result2)
    result3 = f3(b=10)  # 20
    print(result3)
    result4 = f3(a=10,b=6)  # 报错:missing 1 required positional argument: 'a',a=2不可再传参
    print(result4)
    result1 = f3(10)  #20,10传给了b参数
    print(result1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值