python functools 模块有哪些实用函数?

Python——标准库函数 Python标准库函数相关知识 阅读详情

📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)

📝 职场经验干货:

软件测试工程师简历上如何编写个人信息(一周8个面试)

软件测试工程师简历上如何编写专业技能(一周8个面试)

软件测试工程师简历上如何编写项目经验(一周8个面试)

软件测试工程师简历上如何编写个人荣誉(一周8个面试)

软件测试行情分享(这些都不了解就别贸然冲了.)

软件测试面试重点,搞清楚这些轻松拿到年薪30W+

软件测试面试刷题小程序免费使用(永久使用)


functools 是 Python 标准库中非常强大的模块,提供了一系列用于函数式编程的工具函数。它主要用于增强或操作可调用对象(如函数),提升代码的复用性和可读性。

✅ 1. functools.reduce(function, iterable[, initializer])

功能:

对可迭代对象中的元素进行累积计算(归约)。

from functools import reduce
# 累加所有数字
result = reduce(lambda x, y: x + y, [1, 2, 3, 4])
print(result)  # 输出: 10
# 使用初始值
result = reduce(lambda x, y: x + y, [1, 2, 3], 10)
print(result)  # 输出: 16‍

✅ 2. functools.partial(func, *args, **keywords)

功能:

固定函数的部分参数,返回一个新的部分应用函数(Partial Application)。​​​​​​​

from functools import partial
def power(base, exponent):
    return base ** exponent
square = partial(power, exponent=2)
cube = partial(power, exponent=3)
print(square(5))  # 输出: 25
print(cube(5))    # 输出: 125‍

✅ 3. functools.lru_cache(maxsize=128)

功能:

缓存函数结果,避免重复计算,常用于递归或耗时函数。

📌 适用于幂等函数(相同输入始终输出相同结果)​​​​​​​

from functools import lru_cache
@lru_cache(maxsize=None)  # 不限制缓存大小
def fib(n):
    if n < 2:
        return n
    return fib(n - 1) + fib(n - 2)
print(fib(100))  # 非常快,因为中间结果被缓存了‍

✅ 4. functools.wraps(wrapped, assigned=WRAPPER_ASSIGNMENTS, updated=WRAPPER_UPDATES)

功能:

保留装饰器包裹函数的元信息(如 __name__, __doc__),推荐在写装饰器时使用。​​​​​​​

from functools import wraps
def my_decorator(func):
    @wraps(func)
    def wrapper(*args, **kwargs):
        print("Before function call")
        result = func(*args, **kwargs)
        print("After function call")
        return result
    return wrapper
@my_decorator
def say_hello():
    """Greet the user."""
    print("Hello")
print(say_hello.__name__)  # 输出: say_hello(而不是 wrapper)
print(say_hello.__doc__)   # 输出: Greet the user.‍

✅ 5. functools.total_ordering()

功能:

为类自动生成比较方法(<, <=, >, >=),只需定义 __eq__ 和一个其他比较方法即可。​​​​​​​

from functools import total_ordering
@total_ordering
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def __eq__(self, other):
        return self.age == other.age
    def __lt__(self, other):
        return self.age < other.age
p1 = Person("Alice", 30)
p2 = Person("Bob", 25)
print(p1 > p2)  # True
print(p1 < p2)  # False‍

✅ 6. functools.cmp_to_key(func)

功能:

将旧式的比较函数(返回 -1, 0, 1)转换为可用于 sorted() 的 key 函数。​​​​​​​

from functools import cmp_to_key
def compare(a, b):
    if a < b:
        return -1
    elif a > b:
        return 1
    else:
        return 0
nums = [5, 2, 9, 1]
sorted_nums = sorted(nums, key=cmp_to_key(compare))
print(sorted_nums)  # 输出: [1, 2, 5, 9]‍

✅ 7. functools singledispatch

功能:

根据第一个参数的类型进行函数重载(多态函数)。​​​​​​​

from functools import singledispatch
@singledispatch
def process(data):
    print("默认处理:", data)
@process.register(int)
def _(data):
    print("处理整数:", data * 2)
@process.register(str)
def _(data):
    print("处理字符串:", data.upper())
process(10)      # 输出: 处理整数: 20
process("abc")   # 输出: 处理字符串: ABC
process([1,2])   # 输出: 默认处理: [1, 2]‍

✅ 8. functools.cache (Python 3.9+)

功能:

类似于 lru_cache(None),但更高效,适合无参或不可变参数的函数。​​​​​​​

from functools import cache
@cache
def factorial(n):
    if n <= 1:
        return 1
    return n * factorial(n - 1)
print(factorial(100))  # 快速计算,且不会重复计算‍

✅ 总结表格:常用 functools 工具函数一览

图片

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​

jetson agx orin开箱及接口介绍 阅读详情

相关推荐

芯片测试中的DC与AC模式详解:如何选择最适合你的测试方案?

本文深入解析了芯片测试中DC(直流)与AC(交流)模式的核心差异与互补性。DC测试关注静态电气特性,如固定型故障;而AC测试则聚焦于芯片在额定工作速度下的动态时序行为。文章从VLSI设计、电路模块、成本约束、可测试性设计和应用场景五大维度,提供了如何根据工艺节点、工作频率及具体需求,在testMode配置、时钟复位策略和输入输出接口设计中,平衡两种测试模式以制定最优方案的决策框架。

bb456的博客 1086

【机器学习】python有用工具函数汇总---永久追加更新

1.等差数列样本集1.1代码#等差数列 import numpy x = numpy.arange(start=1, stop=10, step=2, dtype=int) print(type(x)) print(x) #等差数列 x = numpy.arange(start=1, stop=10, step=2, dtype=float) print(type(x)) print(x)1.2...

蔚蓝的天空Tom 960

MT4/MT5数据源接入全攻略:从买服务、自研API到低成本DDE,哪种方案适合你?

本文全面解析MT4/MT5数据源接入的三种主流方案:商业服务、自研API和低成本DDE,详细对比其技术参数、成本结构和适用场景。帮助技术团队根据业务需求选择最优方案,确保外汇交易系统的数据流稳定性和实时性,提升交易体验和业务连续性。

weixin_42568801的博客 172

20 个 Python 函数的使用方法,你不容错过

Python 标准库包含许多可帮助您完成编程任务的函数。了解最有用的并创建更健壮的代码。编写更少的代码是编写更具可读性的功能性程序的好方法。您不应该浪费宝贵的时间来重新创建现成的 Python 函数或方法。不过,如果您不熟悉 Python 的内置工具,您可能最终会这样做。这里为您列出了宝贵的 Python 内置函数和方法,它们可以缩短您的代码并提高其效率。Python 函数教程。

winkexin的博客 1926

【论文精度】生成式预训练模型——BART(Bidirectional and Auto-Regressive Transformers)

​ BART是一个预训练的seq2seq的去噪自编码(denoising autoencoder)模型,BART以下方式进行训练①用任意的噪声函数(noising function)去破坏文本;②学习一个模型来重建原始文本。它使用一个标准的基于transformer的神经机器翻译架构,可以看作是BERT(双向编码器)、GPT(left-to-right解码器)以及其他预训练方案的推广。

weixin_45828972的博客 7447

Revit获取族预览图

最近做到和族库相关的功能需要获取到族文件的预览图,在RevitAPI中提供了ElementType.GetPreviewImage方法,但是前提就是你是在Revit里面操作的,并且已经拿到了Symbol对象实例,才可以调用此方法。然后在网上找了另外一种方式,通过读取Revit文件,在REVITPREVIEW4.0字段截取文件信息,将其转换为图片格式。 一、使用RevitAPI中ElementType.GetPreviewImage方法 [Autodesk.Revit.Attributes.Transac.

weixin_44631419的博客 1754

python常用工具函数

zip()函数 把两个列表(或元祖,字符串也行)‘压缩’ 成一字zip对象(可迭代对象),目的:使用循环可以并行的循环两个列表; 返回的是一个列表,里边是由原列表元素组成的元祖。 l1 = [1,2,3,4] l2 = [1,2,3,4] r = [i for i in zip(l1,l2)] print(r) # [(1, 1), (2, 2), (3, 3), (4, 4)] ...

记录点滴 465

cadence数模混合仿真反标sdf

数模混合IC设计时经常要调用一些Verilog模块(最简单的例如SPI接口),在前仿时一般直接用rtl代码来仿真,但是后仿时要关注因寄生带来的延迟,避免这些额外的延迟导致时序错误,因此不能简单地采用RTL来仿真。 一般有两种办法:1是采用由RTL综合得到的门级电路来仿真,这种方法比较简单,但是缺点是规模较大,而且只包括门延迟不包括因版图导致的线延迟;如果想要仿真更精细,就要对该这部分门电路提取寄生参数; 另一种方式是利用sdf文件(standard delay format)来进行仿真。后端工具在布局布

长河柱天的博客 7274

精心整理了100个必备的Python函数,阁下请收藏

新手在做写代码的时候容易卡壳,尤其当接触的函数以及其他知识比较多的时候,经常会看完需求之后不知道自己该用什么方法来实现它,实现的逻辑可能你有,但怎么该用什么函数给忘了,这其实就是知识的储备不够,你记不住哪个函数有什么作用,自然一头雾水。这几天我专门整理了Python常用的一些函数,从最基础的输入输出函数到正则等12个板块的,总共100多个常用函数,方便小伙伴们进行快速地记忆,每天快速过一遍,用的时候再加深一下,慢慢地你就会摆脱写代码卡壳的状况。

qq_27595745的博客 630

Windows下Maven环境变量配置避坑指南:解决‘mvn‘不被识别问题

本文详细解析了Windows系统中配置Maven环境变量时常见的'mvn'不被识别问题,特别是当系统提示“无法将‘mvn’项识别为cmdlet、函数、脚本文件或可运行程序的名称”时的解决方案。文章从问题根源入手,提供了清晰的配置步骤、深入的排查方法以及针对PowerShell的特殊处理,旨在帮助开发者彻底解决环境变量配置难题,确保Maven命令正常使用。

weixin_28826961的博客 389

数据分析实战:如何用皮尔逊相关系数避免伪相关陷阱(附Python代码)

本文通过实战案例与Python代码,深入解析了皮尔逊相关系数在数据分析中的应用与常见陷阱。文章重点揭示了如何识别与避免由混杂变量导致的伪相关,并介绍了通过可视化、敏感性分析、分层分析与偏相关分析等方法来检验相关性的可靠性,帮助分析师建立严谨的相关性思维。

weixin_29051245的博客 411

5个酷毙的Python工具

工欲善其事必先利其器,一个好的工具能让起到事半功倍的效果,Python社区提供了足够多的优秀工具来帮助开发者更方便的实现某些想法,下面这几个工具给我的工作也带来了很多便利,推荐给追求美好事物的你。Python TutorPython Tutor 是由 Philip Guo 开发的一个免费教育工具,可帮助学生攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。通过这个工具,教师或

Python之禅 3731

ESP32-C3入门教程 环境篇②——Windows开发环境准备

文章目录一、注意事项二、下载ESP-IDF工具安装器三、安装内容四、详细安装步骤报错处理 一、注意事项 请注意 ESP-IDF 和 ESP-IDF 工具的安装路径不能超过 90 个字符,安装路径过长可能会导致构建失败。 Python 或 ESP-IDF 的安装路径中一定不能包含空格或括号。 除非操作系统配置为支持 Unicode UTF-8,否则 Python 或 ESP-IDF 的安装路径中也不能包括特殊字符(非 ASCII 码字符、中文字符) 二、下载ESP-IDF工具安装器 ESP-IDF Win

5242

Python functools模块有哪些实用函数?

functools是Python标准库中非常强大的模块,提供了一系列用于函数式编程的工具函数。它主要用于增强或操作可调用对象(如函数),提升代码的复用性和可读性。

m0_75067629的博客 706

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Python functools模块高阶函数实用指南

Python functools模块高阶函数实用指南。

raoxiaoz0425的博客 93

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

python中functools_Python中functools模块函数解析

Python自带的 functools 模块提供了一些常用的高阶函数,也就是用于处理其它函数的特殊函数。换言之,就是能使用该模块对可调用对象进行处理。functools模块函数概览functools.cmp_to_key(func)functools.total_ordering(cls)functools.reduce(function, iterable[, initializer])func...

weixin_39552286的博客 100

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Python的functools模块详解

Python的functools模块用以为可调用对象(callable objects)定义高阶函数或操作。简单地说,就是基于已有的函数定义新的函数。 所谓高阶函数,就是以函数作为输入参数,返回也是函数。 1. functools模块的引用 from functools import partial 2. partial()函数 partial(func, *args, **

成长的足迹 5836

Python functools模块实用教程

函数缓存lru_cache部分函数应用partial函数组合与装饰reducewraps多态分发类工具编写更高效的函数式代码减少重复计算创建更灵活的API保持代码的整洁和可维护性实现更优雅的函数组合和装饰。

qq_17275369的博客 430

python中functools模块

functools (一)偏函数partial In [1]: int('10', 10) Out[1]: 10 In [2]: int('10', 2) Out[2]: 2 In [3]: from functools import partial In [4]: p_int = partial(int, 10) In [5]: p_int('10') ----------------...

gxz987的博客 294

Python functools模块函数式编程

本文介绍了Python标准库中的functools模块,该模块提供了实用的函数式编程工具。主要内容包括:1)模块简介及其在函数式编程中的作用;2)模块提供的核心工具如map、filter、reduce等实用函数,以及装饰器和元组函数;3)高级功能如生成器和闭包;4)应用示例展示如何使用total_ordering装饰器提高代码可读性。文章最后建议继续深入学习这些工具以提高编程效率,同时探索Python其他功能来提升编程能力。全文150字,简明扼要地概括了functools模块的核心内容和应用价值。

qq_35974860的博客 60

python中的itertools、functools、operator函数模块详解

在接口自动化工作中,我们经常需要处理大量的数据和进行各种迭代操作。为了提高效率和简化代码,Python提供了itertools模块,它包含了一些用于创建高效循环迭代器的函数。接下来,让我们一起了解并使用itertools模块,给出在实际接口自动化工作中的五个示例代码。

伤心的辣条 401

Python几个简单实用的模块

  今天整理了下,工作中常用的一些高阶函数,后面持续更新......   一、collections                  二、itertools      三、functools         转载于:https://www.cnblogs.com/NolaLi/p/10986589....

weixin_30800807的博客 79

初识functools模块

functools docs.python.org The functools module is for higher-order functions: functions that act on or return other functions. 包含功能 装饰器 @functools.cached_property(func) @functools.lru_cache(user_function) @functools.lru_cache(maxsize=128, typed=..

漫步量化 365

functools模块

https://blog.youkuaiyun.com/secretx/article/details/51700361 https://docs.python.org/3.5/library/functools.html 转载于:https://www.cnblogs.com/xiugeng/p/9717844.html

anmi3721的博客 87

python wraps_python functools 中的wraps和 partial

1.wrapsfunctools.wraps(wrapped[, assigned][, updated])当定义一个wrapper函数时,这是一个非常方便的函数,用来调用 update_wrapper() 作为一个函数装饰器。它相当于 partial(update_wrapper, wrapped=wrapped, assigned=assigned, updated=updated)。举例:f...

weixin_39955953的博客 186
上一篇: Linux 磁盘打爆了,如何排查?
下一篇: 敏捷软件测试的七个关键成功要素
字节自动化测试
博客等级 码龄6年 7034粉丝 1810原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值