位置: 编程技术 - 正文

深入理解Python装饰器(python安装心得)

编辑:rootadmin

推荐整理分享深入理解Python装饰器(python安装心得),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python怎么装,python安装总结,python安装心得,python入门安装,python入门安装,python安装心得体会,python安装心得体会,深入python3,内容如对您有帮助,希望把文章链接给更多的朋友!

装饰器简介:

装饰器(decorator)是一种高级Python语法。装饰器可以对一个函数、方法或者类进行加工。在Python中,我们有多种方法对函数和类进行加工,比如在Python闭包中,我们见到函数对象作为某一个函数的返回结果。相对于其它方式,装饰器语法简单,代码可读性高。因此,装饰器在Python项目中有广泛的应用。

装饰器最早在Python 2.5中出现,它最初被用于加工函数和方法这样的可调用对象(callable object,这样的对象定义有__call__方法)。在Python 2.6以及之后的Python版本中,装饰器被进一步用于加工类。

装饰器主要是用来包装函数,对于一些常用的功能,譬如:日志打印,函数计时,身份认证。我们可以使用装饰器来实现,这样可以降低整个程序的复杂度和减少程序的代码量。

它实际上就是函数,不同的是,它把一个函数当做参数,然后返回一个替代版函数。

下面看一个简单的示例:

add_number就是一个装饰器函数,它接受一个函数(f)作为参数,然后返回另外一个函数(adder)赋值给原来的函数,这样,原来的函数不用新添加额外的代码量而实现了加法的功能。

这个就是装饰器的原始实现。

But,这种方式还是有点不太方便,毕竟还是绕了一圈,用f=add_number(f)来给原来的函数重新赋值。

其实,Python中可以用下列方式来简化对于装饰器的引用。

只需一个简单的@add_numbe调用,是不是方便,简单了很多,基本上没侵入原来的代码。

深入理解Python装饰器(python安装心得)

额,大家发现没有,作为装饰器,每次接受的参数无非两种:函数和函数的参数,但书写的格式基本一样,有没有办法来简化这种书写呢?

有,Python提供了一个decorator包,可以大大简化装饰器的书写。

So,第三种实现方式为:

喔,果然更加简单了~

以上示例接受的都是一个参数,其实,函数本身是可以接受可变参数的。

如:

输出结果为:

关于*args,**kwargs的区别,两者都可用于表示可变长度的参数。只不过前者是用元祖表示,没有key值,后者是字典,有key值。两者可用于在同一个函数中,但是,*args必须出现在**kwargs之前。

譬如下例:

两者的实现效果一样。

最后来个示例,通过显示函数执行的时间来装饰一个函数

输出结果如下:

以上所述是小编给大家介绍的深入理解Python装饰器,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对积木网网站的支持!

Python中不同进制的语法及转换方法分析 本文实例讲述了Python中不同进制的语法及转换方法。分享给大家供大家参考,具体如下:不同进制的书写方式①八进制(Octal)0o②十六进制(Hex)0xFF③二

Python中字符串的常见操作技巧总结 本文实例总结了Python中字符串的常见操作技巧。分享给大家供大家参考,具体如下:反转一个字符串S='abcdefghijklmnop'S[::-1]'ponmlkjihgfedcba'这种用法叫做three

python中的格式化输出用法总结 本文实例总结了python中的格式化输出用法。分享给大家供大家参考,具体如下:Python一共有两种格式化输出语法。一种是类似于C语言printf的方式,称为F

标签: python安装心得

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

上一篇:python批量制作雷达图的实现方法(python批量填表)

下一篇:Python中不同进制的语法及转换方法分析(python不同进制的整数之间可以直接运算)

  • 挂车交车船税吗
  • 托收承付和委托收款的含义和相同之处
  • 其他个人出租不动产
  • 财务报表没有申报表
  • 收付转凭证如何排序装订
  • 出口货款收不回来怎么办
  • 计提高温补贴会计分录
  • 企业销售货物的税率是多少
  • 简易计税项目可以差额征税吗
  • 餐费专票认证了怎么办
  • 企业出口退税办理流程
  • 小规模没有进项票可以开销项票吗
  • 增值税专用发票验证真伪
  • 政府收购企业资产规定
  • 申报税是什么时候申报
  • 个体工商户交企业所得
  • 公司聚餐计入福利费还是招待费
  • 原材料损失分录
  • 税务机关退税
  • 法人治理包括哪些方面
  • 员工垫付款怎么做分录
  • 处理废料的会计分录
  • win7系统中病毒怎么办
  • 如何关闭开始菜单快捷键
  • 咨询服务费需要什么附件
  • linux统计代码总行数
  • php .htaccess
  • 今天春节是什么生肖
  • 酒店如何核算成本
  • 建筑公司预收账款一般是哪些
  • 软件入无形资产还是长期待摊费用了
  • elementui级联选择器清空方法
  • 出售银行承兑汇票
  • 落日时光
  • php处理304缓存
  • 私房出租税收
  • 计提的教育经费可以税前扣除吗
  • 在建工程核算的内容有哪些
  • 资产负债表季报是累计三个月数据吗
  • 企业所得税放入什么科目
  • 企业所得税研发费用如何加计扣除?
  • SQL Server 2008 R2 应用及多服务器管理
  • 母公司持有子公司70%股权
  • 个体户一年能开多少票不用交税
  • 财务报表里的现金流量表括号是什么意思
  • 回购股票不注销如何发可转债
  • 甲方向乙方支付
  • 房地产企业取得土地的契税如何记账
  • 跨境电商怎么交流
  • 预收账款开票怎么做账
  • 疫情防控重点保障物资生产企业可以按月
  • 企业取得土地补偿款
  • 房租收不回来会计分录
  • 长期待摊费用的概念
  • 员工报销工伤险怎么报销
  • 微信收款如何做账报税
  • 进项税额属于什么会计科目
  • 费用误计入固定资产
  • 现金进货账务处理
  • 投资收益科目在借方
  • 公司买空调算什么费用
  • asp.net select
  • linux chmod命令用法
  • Win8系统网络SSID怎么设置?Win8设置网络SSID的方法
  • win8.1应用
  • win10一年更新几次
  • wind10手机版
  • win7系统自动弹出搜索框
  • 放一个命令
  • cocos creator 发布web
  • 相片管理必备知识
  • bash foreach
  • 从零开始学什么技术
  • javascript对象和方法
  • js实现继承的几种方式详述(推荐)
  • 顺丰收取关税合理吗
  • 航天金税软件怎么下载
  • 国家税务局吉林省税务局官网app
  • 广东电子税务局官网登录入口
  • 中国个人所得税是多少?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设