装饰器概念

装饰器,说白了,就是用来装饰函数的一个函数
装饰器遵循 开放封闭原则依赖倒置原则,这两个原则概念,自行百度下,

装饰器长啥样

def wrapper(f): def inner(*args,**kwargs):  ret = f(*args,**kwargs)return retreturn inner

上述代码是装饰器的固定格式
调用装饰器

@wrapper  # 简称语法糖
def test():print(1)
test()

@wrapper是调用装饰器,相比于wrapper(test()),更节省代码,更美观。可能你看到这里就不懂了,为啥要@wrapper? 调用函数不是wrapper()
其实吧,你要我说,我也不知道,我就知道,这样写更简单。直接在要装饰的函数前@wrapper即可
以一个小例子快速看懂装饰器

def wrapper(f):print(2)def inner(*args,**kwargs):print(3)ret = f(*args,**kwargs)print(4)return retreturn inner@wrapper
def test():print(1)
test()

@wrapper == wrapper(test()) 相当于调用装饰器函数,直接用语法糖@wrapper会更简便
*args是匹配以位置传参的参数,**kwargs是匹配按关键字传参的参数,这样就可以接收所有参数。
wrapper(test)接收值传给f,在内圈函数中,ret = f(*args,**kwargs)这函数是执行装饰的函数的代码。再返回执行的值,最后返回这个函数。此代码的执行结果为:

2
3
1
4

如下图所示

由此可见
函数inner中,print(3)是执行装饰函数前的操作, print(4)是执行装饰函数后的操作。
理解起来可能有些困难。所以最好还是动手试试。

基础小练习

'''1. 默写装饰器固定格式2. 写一个加减功能的装饰器
'''

本文首发于python黑洞网,csdn同步跟新

从0基础学Python:装饰器及练习(基础)相关推荐

  1. 0基础学python看什么书-零基础学python编程需要看什么书?

    原标题:零基础学python编程需要看什么书? 随着互联网迅速发展,python也呈现出水涨船高的态势.近年来,python在编程语言中一直名列前茅.编程初学者纷纷选择Python作为第一语言.Pyt ...

  2. 零基础学python全彩版答案-零基础学Python(全彩版)

    商品描述: 本店出售的图书均是正版二手书,有一些笔记划线,基本是六-九品新左右,基本都没有光盘.介意者请提前咨询客服.本店所有书籍,因买家导致退货退款的,发出运费参照不包邮运费模板由买家承担.如果签收 ...

  3. 编程没基础学python多长时间-零基础学Python的过程有多难?需要多久?

    Python是一门简单高效,应用范围广泛的计算机语言.先我们要知道Python已经算是一门相对其他编程语言而言,最适合零基础新手学习的开发语言,换句话说,如果连Python都学不进去就不要考虑进入IT ...

  4. 零基础学python看什么书-零基础学python推荐几本python学习的书籍

    原标题:零基础学python推荐几本python学习的书籍 无论是否已经学习了一些其他的编程语言,在开始学习Python时,都应该先从Python的基本概念学起,这样在之后的编程实战中就能尽量减少因为 ...

  5. 编程没基础学python多长时间--零基础学Python,从入门到精通需要多长时间

    求一份小甲鱼的<零基础入门学习Python>视频教程 评论 本系列教程面向础的同学,是一个深入浅通俗易懂的Python3视频教程. 适群 完全零基础入门,不需要任何前置知识. 教程概述 前 ...

  6. 零基础学python图文版-杭州零基础学python图文版

    杭州零基础学python图文版 来源:教育联展网 编辑:佚名 发布时间:2018-09-19 学习python有什么用? 如果你想学Python,或者你刚开始学习Python,那么你可能会问:&quo ...

  7. 零基础学python大概要多久-零基础学Python要多久

    随着Python就业的逐渐火热,我们会看见很多转行零基础学Python编程开发拿上万月薪的新闻,这让很多IT专业甚至非IT专业的同学蠢蠢欲动,想自己也去尝试一下.但是在转行学习Python之前,同学们 ...

  8. 零基础学python还是c语言-零基础学Python之前需要学c语言吗

    Python本身是比较适合作为入门编程语言来学习的,一方面Python的语法结构比较简单清晰,实验也相对比较容易完成,这会逐渐增强初学者的学习信心,另一方面Python属于全场景编程语言,未来在很多领 ...

  9. 零基础学python大概要多久-零基础学python大概要多久

    Python是目前公认的全球5大流行语言之一,从云计算.大数据到人工智能,Python无处不在,同时Python被誉为神奇的"胶水语言",因为它能够轻易地操作其他程序,轻易地包装使 ...

  10. 有c语言基础学python容易吗_零基础学Python之前需要学c语言吗

    Python本身是比较适合作为入门编程语言来学习的,一方面Python的语法结构比较简单清晰,实验也相对比较容易完成,这会逐渐增强初学者的学习信心,另一方面Python属于全场景编程语言,未来在很多领 ...

最新文章

  1. LUA脚本调用C场景,使用C API访问脚本构造的表
  2. 洛谷P4630 [APIO2018] Duathlon 铁人两项 【圆方树】
  3. angular 构建可以动态挂载的配置服务
  4. windows下手动安装pyinstaller(python2.7)
  5. 32怎么通过一个按键实现不同工作模式_stm32几种低功耗模式的实现和差别
  6. 腾讯视频 android 2倍,腾讯视频多倍速播放产品设计小结
  7. 建议1 区分4中零值
  8. python 连接 mysql
  9. MySQL二进制日志(binlog)总结
  10. 英伟达实时 3D 设计协作和仿真平台已正式发布
  11. 2020年下半年软件设计师下午真题及答案解析
  12. 【Unity gradle打android包网络连接超时错误 connec xxx ttime out】
  13. Input length must be multiple of 8 when decrypting with padded cipher
  14. 带你玩转区块链--区块链面试问题及答案-第四章【总结篇】
  15. 【7gyy】支招:自检性能搞定网速慢电脑卡的问题
  16. Mysql 中的事物
  17. 软件测试实例-如何测试一个杯子
  18. Linux系统下安装Adobe Flash Player插件观播放视频
  19. 利用Pytorch中深度学习网络进行多分类预测(multi-class classification)
  20. git检出新分支遇到的文件路径过长Filename too long的问题

热门文章

  1. 致加西亚的信 - 摘录
  2. java获取系统时间并自定义格式
  3. 18号是什么php,19年1月18号CSS浮动float
  4. 两张照片重叠处半透明_那些悬浮在空中的照片是怎么拍的?
  5. (22)Xilinx FPGA PCIE中断接口(学无止境)
  6. FPGA时钟激励编写(方法二)
  7. 8001.win10安装ros2-dashing环境搭建
  8. STM32 SPI详解
  9. python获取计算机信息系统数据罪_使用 python 收集获取 Linux 系统主机信息
  10. Kalibr 标定双目内外参数以及 IMU 外参数