位置: 编程技术 - 正文

详解Python中最难理解的点-装饰器(python难度)

编辑:rootadmin

推荐整理分享详解Python中最难理解的点-装饰器(python难度),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python难度,python最难的代码,python难在哪里,python难度,python 难度知乎,python难在哪里,python难易程度,python难度,内容如对您有帮助,希望把文章链接给更多的朋友!

本文将带领大家由浅入深的去窥探一下,这个装饰器到底是何方神圣,看完本篇,装饰器就再也不是难点了.

一、什么是装饰器

网上有人是这么评价装饰器的,我觉得写的很有趣,比喻的很形象

每个人都有的内裤主要是用来遮羞,但是到了冬天它没法为我们防风御寒,肿木办? 我们想到的一个办法就是把内裤改造一下,让它变得更厚更长,这样一来,它不仅有遮羞功能,还能提供保暖,不过有个问题,这个内裤被我们改造成了长裤后,虽然还有遮羞功能,但本质上它不再是一条真正的内裤了。于是聪明的人们发明长裤 在不影响内裤的前提下,直接把长裤套在了内裤外面,这样内裤还是内裤,有了长裤后再也不冷了

装饰器就像我们这里说的长裤,在不影响内裤作用的前提下,给我们的身子提供了保暖的功效

二、装饰器的前传4步曲

为什么讲装饰器要放在入门篇的末尾讲呢,因为这货太难了,里面有许多前提要懂。Python的函数相信大家都懂了,但是大家知不知道函数也是一种对象,可以像参数一样传递,我们看下面的例子吧:

1)函数也是对象

也就是说message可以赋值给另外一个变量

2)函数可以嵌套,定义在另外一个函数内部

message可以嵌套在show函数里面,调用show的时候也会跑下message函数

3)函数作为参数返回

一个函数还可以当做另外一个函数的返回值,不信看下面这个例子

4)函数作为参数传入

详解Python中最难理解的点-装饰器(python难度)

我们先创建一个getName函数,然后把这个函数当做参数传递给foo函数

三、装饰器的真面目

1).经过前面几步,大家应该理解了函数可以作为参数传入,也可以当参数返回,而且还可以嵌套装饰器其实就是对函数进行再次包装,它能够在不改变函数的前提下,增加函数的功能,可以在函数执行之前或者执行之后执行一段代码

2).使用装饰器

看这样简单吧,装饰器有一个语法糖@,直接@my_new_decorator就把上面一坨代码轻松化解了,这就是Pythonic的代码,简洁高效

其实相当于:

四、为什么要使用装饰器

装饰器提供了一些和代码维护性和审美相关的优点。并且作为结构化工具,装饰器自然地促进了代码的封装,这减少了冗余性并使得未来维护和扩展变得更容易。

如果大家学过Django和Flask就会知道,web框架里面大量的使用装饰器进行代码的封装.我们下面看一个简单的例子:

我们有一个主题函数word()是输出一个字符串,我们有一个函数是把字符串变粗体,另外一个是变斜体。有了装饰器之后,我们可以非常灵活的组合,扩展函数的功能:

有一点要注意,就是装饰器的顺序变了,结果是不一样的.

好了装饰器的入门,就讲到这里,若有什么不懂的,也可以留言跟我探讨交流。其实还有很多装饰器的高级用法,比如装饰器传参数,类的装饰器等等我们后面会讲解。

总结

标签: python难度

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

上一篇:JSON Web Tokens的实现原理(json web key)

下一篇:python 容器总结整理(python容错)

  • 补交增值税产生的费用
  • 设备出租的账务处理
  • 政府奖励收入要交企业所得税么
  • 分公司可以用总公司的业绩吗
  • 发票勾选是否为转内销凭证是什么意思
  • 代扣代缴完税凭证是什么
  • 社保当月增员次月扣费
  • 当月减少的固定资产当月停止折旧
  • 福利费的支出要求及标准
  • 无形资产摊销怎么计算
  • 营改增对电信业的影响及对策
  • 支付股权投资的会计科目
  • 支付的管理费用可以抵税吗
  • 勾选认证和扫描认证哪个好
  • 电子发票如何报销做账
  • 无形资产的入账价值包括宣传费吗
  • 承兑汇票章不清晰 情况说明
  • 广告费扣税
  • 购买国债利息收入计入利润总额吗
  • 公司投资另外一个公司全资占股需要什么流程
  • 电子税务局如何查进项发票
  • 作废代开发票,是否退还已纳税款?
  • 招待客户住宿费可以抵扣进项税吗合理吗
  • 收到空头支票解释怎么写
  • 即征即退申报表如何填写
  • win10应用显示模糊发虚
  • bios相关概念
  • php代码封装成dll
  • win10新装系统我的电脑在哪
  • php判断ua
  • 应收账款减值损失的核算方法
  • php递归函数详解
  • git 查看所有commit
  • 低值易耗品费用计入什么科目
  • 应付未付的工资属于负债吗
  • 农产品增值税免税备案资料
  • 工会会计需要会计证吗
  • 增值税品种
  • 一般纳税人公司出售旧车怎么开票
  • 会计人员信息采集怎么填
  • 为什么购买办公用品
  • 共管账户取钱需要多久到账
  • 加班费是计入应交税费吗
  • 小规模开票的税点是多少
  • 将购进药品销售给药品生产企业或药品经营企业的是
  • 企业内部罚没收入违法吗
  • 呆账坏账对应五级分类
  • 权益净利率计算公式产权比率
  • 免税申请需要什么材料
  • 以前年度应付款少记怎么入账
  • 认购股份的形式主要有
  • 发票找不到了怎么操作
  • 红十字会是事业编还是行政编
  • 会计及库管岗位职责(要求)
  • mysql的20条优化方法
  • sqlserver数据库和mysql区别
  • mysql绿色版配置
  • 解决Windows Server远程断开后自动
  • task运行在哪个工作单元
  • winxp系统介绍
  • centos7查看性能监控
  • win7系统打不开浏览器
  • 如何在mac中安装五笔字型输入法
  • Linux如何开启防火墙
  • win7任务栏还原到下面快捷键
  • 电脑开机后出现win7画面后一直黑屏
  • perl中打开文件
  • python多线程代码
  • 利用感情骗取钱财算诈骗吗
  • ffmpeg webui 0.9.6
  • 新浪微博模仿推特
  • 深入理解python特性 pdf
  • Android优化蓝牙
  • 点评js异步加载什么意思
  • 江苏国税电子税务局网上申报流程
  • 残疾人买车可以减免购置税吗
  • 陕西税务电子税务局官网安装
  • 物业管理用房如何申请
  • 开展和组织开展什么区别
  • 全国初中应用物理知识竞赛获奖名单
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设