【Python函数式编程】——偏函数(Partial function)

简介:  Python的 functools 模块提供了很多有用的功能,其中一个就是偏函数(Partial function)。要注意,这里的偏函数和数学意义上的偏函数不一样。

Python函数式编程——偏函数Partial function

在这里插入图片描述

  Python的 functools 模块提供了很多有用的功能,其中一个就是偏函数( Partial function)。要注意,这里的偏函数和数学意义上的偏函数不一样。
  例如: int() 函数可以把字符串转换为整数,当仅传入数字字符串时, int() 函数默认按十进制转换
>>> int('123') 
123
  但 int() 函数还提供额外的 base 参数,默认值为 10 。如果传入 base 参数,就可以做进制的转换。
>>> int('12345', base=8) 
5349 
>>> int('12345', 16) 
74565
  如果要转换大量的二进制字符串,每次都传入 int(x, base=2) 非常麻烦,于是,我们想到,可以定义一个 int2() 的函数,默认把 base=2 传进去:

代码:

# 定一个转换义函数 
def int_bin(num, base=2):
    return int(num, base=2)


print(int_bin('1001'))  # 9
  把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单,继续优化, functools.partial 就是帮助我们创建一个偏函数的,不需要我们自己定义 int_bin() 函数,可以直接使用下面的代码创 建一个新的函数。
# -*- coding: utf-8 -*-
# @File  : 偏函数partial.py
# @author: Flyme awei 
# @email : Flymeawei@163.com
# @Time  : 2022/8/21 22:18

from functools import partial


int2 = partial(int, base=2)
print(int2('1001'))  # 9
  理清了 functools.partial 的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。

  注意到上面的新的 int2 函数,仅仅是把 base 参数重新设定默认值为 2 ,但也可以在函数调用时传入其他值实际上固定了int()函数的关键字参数 base


相关文章
|
2月前
|
分布式计算 Python
Python函数式编程学习笔记
高阶函数是能接收另一个函数作为参数的函数,如Python的map()、reduce()和filter()。map()将传入的函数应用到序列每个元素并返回迭代器,如将整数列表转换为字符串列表。reduce()对序列进行累积计算,例如求和。filter()根据给定函数返回的真值保留或丢弃序列元素,常用于筛选。sorted()函数支持自定义排序,如按绝对值或ASCII值排序。此外,还包括返回函数、匿名函数(lambda)、装饰器(用于动态增强函数功能)和偏函数(partial),用于固定函数部分参数,简化调用。
28 1
|
12天前
|
Python
Python中的Map Function
Python中的Map Function
|
13天前
|
Python
在Python中,`map()`, `filter()` 和 `reduce()` 是函数式编程中的三个核心高阶函数。
【6月更文挑战第24天】Python的`map()`应用函数到序列元素,返回新序列;`filter()`筛选满足条件的元素,生成新序列;`reduce()`累计操作序列元素,返回单一结果。
18 3
|
25天前
|
Serverless 开发者 Python
Python函数式编程:让你的代码更简洁、更高效!
【6月更文挑战第12天】Python函数式编程引入了数学函数概念,强调无副作用和不可变数据。特点包括高阶函数、Lambda表达式、map、filter和reduce。示例展示了如何使用map进行平方运算,filter筛选条件元素,reduce计算元素总和,体现其简洁高效。虽然不适用于所有情况,但函数式编程能提升代码可读性和可维护性。
|
2月前
|
Python
Python函数式编程自带函数
Python函数式编程自带函数
11 1
|
2月前
|
Java API 容器
Java8函数式编程接口:Consumer、Supplier、Function、Predicate
Java8函数式编程接口:Consumer、Supplier、Function、Predicate
27 1
|
2月前
|
并行计算 数据处理 调度
Python中的函数式编程:深入理解与应用
Python中的函数式编程:深入理解与应用
17 0
|
2月前
|
数据处理 Python
Python中的函数式编程:高阶特性与应用
Python中的函数式编程:高阶特性与应用
13 0
|
2月前
|
机器学习/深度学习 数据可视化 Python
数据分享|Python用偏最小二乘回归Partial Least Squares,PLS分析桃子近红外光谱数据可视化
数据分享|Python用偏最小二乘回归Partial Least Squares,PLS分析桃子近红外光谱数据可视化
|
2月前
|
开发者 Python
Python中的函数式编程:提升代码可读性与可维护性
函数式编程是一种强调函数作为基本构建块的编程范式,它在Python中的应用越来越广泛。本文将介绍函数式编程的基本概念和在Python中的实践方法,探讨如何利用函数式编程提升代码的可读性与可维护性。