位置: 编程技术 - 正文

Python中functools模块函数解析(python functools.wraps)

编辑:rootadmin

推荐整理分享Python中functools模块函数解析(python functools.wraps),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python中的functools模块,func python,functool python,python3 functools,python functools.wraps,python functools.partial,functool python,python中的functools模块,内容如对您有帮助,希望把文章链接给更多的朋友!

Python自带的 functools 模块提供了一些常用的高阶函数,也就是用于处理其它函数的特殊函数。换言之,就是能使用该模块对可调用对象进行处理。

functools模块函数概览

functools.cmp_to_key(func) functools.total_ordering(cls) functools.reduce(function, iterable[, initializer]) functools.partial(func[, args][, *keywords]) functools.update_wrapper(wrapper, wrapped[, assigned][, updated]) functools.wraps(wrapped[, assigned][, updated])

functools.cmp_to_key()

语法:

functools.cmp_to_key(func)

该函数用于将旧式的比较函数转换为关键字函数。

旧式的比较函数:接收两个参数,返回比较的结果。返回值小于零则前者小于后者,返回值大于零则相反,返回值等于零则两者相等。

关键字函数:接收一个参数,返回其对应的可比较对象。例如 sorted(), min(), max(), heapq.nlargest(), heapq.nsmallest(), itertools.groupby() 都可作为关键字函数。

在 Python 3 中,有很多地方都不再支持旧式的比较函数,此时可以使用 cmp_to_key() 进行转换。

示例:

functools.total_ordering()

语法:

functools.total_ordering(cls)

这是一个类装饰器,用于自动实现类的比较运算。

我们只需要在类中实现 __eq__() 方法和以下方法中的任意一个 __lt__(), __le__(), __gt__(), __ge__(),那么 total_ordering() 就能自动帮我们实现余下的几种比较运算。

示例:

functools.reduce()

语法:

Python中functools模块函数解析(python functools.wraps)

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

该函数与 Python 内置的 reduce() 函数相同,主要用于编写兼容 Python 3 的代码。

functools.partial()

语法:

functools.partial(func[, *args][, **keywords])

该函数返回一个 partial 对象,调用该对象的效果相当于调用 func 函数,并传入位置参数 args 和关键字参数 keywords 。如果调用该对象时传入了位置参数,则这些参数会被添加到 args 中。如果传入了关键字参数,则会被添加到 keywords 中。

partial() 函数的等价实现大致如下:

partial() 函数主要用于“冻结”某个函数的部分参数,返回一个参数更少、使用更简单的函数对象。

示例:

functools.update_wrapper()

语法:

functools.update_wrapper(wrapper, wrapped[, assigned][, updated])

该函数用于更新包装函数(wrapper),使它看起来像原函数一样。可选的参数是一个元组,assigned 元组指定要直接使用原函数的值进行替换的属性,updated 元组指定要对照原函数进行更新的属性。这两个参数的默认值分别是模块级别的常量:WRAPPER_ASSIGNMENTS 和 WRAPPER_UPDATES。前者指定了对包装函数的 __name__, __module__, __doc__ 属性进行直接赋值,而后者指定了对包装函数的 __dict__ 属性进行更新。

该函数主要用于装饰器函数的定义中,置于包装函数之前。如果没有对包装函数进行更新,那么被装饰后的函数所具有的元信息就会变为包装函数的元信息,而不是原函数的元信息。

functools.wraps()

语法:

functools.wraps(wrapped[, assigned][, updated])

wraps() 简化了 update_wrapper() 函数的调用。它等价于 partial(update_wrapper, wrapped=wrapped, assigned, updated=updated)。

示例:

如果不使用这个函数,示例中的函数名就会变成 wrapper ,并且原函数 example() 的说明文档(docstring)就会丢失。

python中pandas.DataFrame排除特定行方法示例 前言大家在使用Python进行数据分析时,经常要使用到的一个数据结构就是pandas的DataFrame,关于python中pandas.DataFrame的基本操作,大家可以查看这篇文章。p

Python的标准模块包json详解 引言对于做web开发的人来说,json文本必须要熟知与熟练使用的。大部分网站的API接口调用返回的数据,就是json格式的。如果看json对象所包含的内容,

python executemany的使用及注意事项 使用executemany对数据进行批量插入的话,要注意一下事项:#coding:utf8conn=MySQLdb.connect(host=localhost,user=root,passwd=,db=myDB)cursor=conn.cursor()sql=insertintomyTable(c

标签: python functools.wraps

本文链接地址:https://www.jiuchutong.com/biancheng/378674.html 转载请保留说明!

上一篇:python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)

下一篇:python中pandas.DataFrame排除特定行方法示例

  • 商业保理怎么账务处理
  • 经营性收入包括投资收益吗
  • 公司变更地址后需要去开户银行变更
  • 银行的电子退库是什么,怎么做账
  • 事业单位无形资产摊销
  • 商超陈列费
  • 财务报表其他应付款为负数
  • 公司预支了然后来报销的帐怎么做?
  • 固定资产抵扣新政策2022
  • 工程预付款未按时支付
  • 不能税前扣除的费用有哪些
  • 一个公司只有一个财务人员,可以吗
  • 应交所得税的计算例题
  • 增值税未实际收到款项可以抵扣吗?
  • 附加税是地方还是国家的
  • 收付实现制下预收款算收入吗
  • 长期投资项目包括哪些
  • 个人出租场地个人所得税
  • 不动产进项税抵扣规定2016
  • 外购固定资产如何入账
  • 医院会计制度准则
  • 个体户需要记账嘛
  • Secure Boot什么意思?BIOS中Secure Boot灰色无法更改解决方法详解
  • 生产成本包括哪三类
  • 出差补贴算工资薪金吗
  • 沙盘模型制作费用
  • 最新版win10激活
  • linux特殊权限设置
  • 经营租入的固定资产是什么意思
  • 银行罚息计入什么会计科目
  • 冰河湖怎么去
  • yolov8目标检测测试输出类别个数
  • Madonna della Corona教堂,意大利 (© Volodymyr Kalyniuk/Alamy)
  • 金融业的特殊性指的是
  • 没有数据企业所需的资料
  • vue 图片转base64格式的方法
  • 企业会计准则应用指南2023pdf
  • 基于Wav2Lip的AI主播
  • php数组排列组合算法
  • 怎样利用 getnext 命令检索未知对象?
  • 应收账款坏账准备计提方法
  • 房租发票需要写备注吗
  • 企业员工年终奖仲裁
  • 帝国cms模型
  • 筹建期所得税年度申报如何填列
  • 一般纳税人增值税可以抵扣吗
  • 预付账款可以抵扣增值税么
  • 员工食堂买菜账务流程
  • 委托银行贷款利息发票谁提供
  • sql共享
  • 债务转为股份的协议
  • 未实缴出资的股东退股
  • 出口退税进项发票会计分录
  • 安装工程什么时候套脚手架搭拆
  • 收到的赔款罚款怎么做账
  • 小微企业和小规模纳税人的区别
  • ubuntu简单的命令
  • 苹果电脑mac系统怎么用
  • surfacepro3的笔
  • 用户请愿地址曝露怎么办
  • win10系统安装了打印机驱动找不到打印机
  • Linux怎么删除文件第一行
  • executor进程
  • redhat磁盘挂载
  • centos6.5怎么安装
  • win10 开始
  • WIN10系统中读卡器驱动的正确安装程序
  • win10 rs3
  • 解决Android Studio下载gradle慢
  • android游戏开发框架
  • 排序方法python
  • android:excludeFromRecents="true"
  • bash scp command not found的解决方法
  • 批处理文件可用记事本
  • 如何使用定向流量
  • 河北地方税务局网
  • 医保预交金可以取出来吗
  • 小规模开了红字发票申报表怎么填
  • 国家税务总局并入财政部最新消息
  • 2020十大经济年度人物揭晓
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设