• 偏函数-Partial


    函数绑定参数成为一个新函数

    partial(func, *args, **keywords) - new function with partial application

    from functools import partial
    
    def sum(arg1, arg2):
        return arg1 - arg2
    
    sum_sub_10 = partial(sum, arg2=10)
    sum_sub_10(20)  # arg1=20, arg2=10
    
    # >>> 10 
    

    不加关键字参数,partial会将参数按顺序传入sum函数

    def sum(arg1, arg2):
        return arg1 - arg2
    
    sum_sub_10 = partial(sum, 10) # 10传入arg1,
    sum_sub_10(20)  # 20传入 arg2
    
    # >>> -10 
    

    应用场景实例

    使map函数的函数参数接收多个参数

    from multiprocessing.dummy import Pool
    from functools import partial # 偏函数,只能接收一个参数的函数可以接收额外参数
    
    lst = [1,2,3,4,5]
    
    def show_lst(ele, args):
        print(ele, args)
    
    p = Pool(5)
    
    p.map(partial(show_lst, args=8), lst)
    # map只能传入不带参数的函数名称,partial将参数args绑定到show_lst并返回一个新的不带参数的函数
    # 不使用位置参数,partial(show_lst, 8),则partial会将第一个参数ele与8绑定,导致map函数报错
    
  • 相关阅读:
    命令行
    作业三C++
    作业二
    0003---简单的a+b问题
    0002---五层小山
    0001---Hello world
    关于OJ的那些事
    CDQ分治学习笔记
    C++ IO的一些注意点
    Vscode配置C++环境
  • 原文地址:https://www.cnblogs.com/relaxlee/p/13431698.html
Copyright © 2020-2023  润新知