来源:python中国网 时间:2020-03-08

  定义偏函数,需使用 partial 关键字(位于 functools 模块中)。

  偏函数可以理解为对原函数的封装,将原函数的部分参数预先绑定为指定值从而得到一个新函数。这样新函数调用的时候参数会减少,比较方便简洁。

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

  下面展示一个没有关键字参数的案例:

# -*- coding: utf-8 -*-
from functools import partial


def echo(a, b,c,d):
    return {'a':a, 'b':b,'c':c,'d':d}

echo_new = partial(echo, 1)
print(echo_new(10,11,12))

    
{'a': 1, 'b': 10, 'c': 11, 'd': 12}


  有关键字参数的函数最好把关键字加上,如果以无关键字参数的方式,该实参将原有参数顺序传值。

# -*- coding: utf-8 -*-
from functools import partial


def echo(name,site):
    return {'name':name, 'site':site}

echo_new = partial(echo, site="www.python66.com")
print(echo_new(name='python教程'))


{'name': 'python教程', 'site': 'www.python66.com'}