这篇文章主要介绍了python装饰器使用实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

python装饰器的作用就是在不想改变原函数代码的情况下,增加新的功能.主要应用了python闭包的概念,现在用1个小例子说明

import time

def foo():

time.sleep(1)

def bar():

time.sleep(2)

def show_time(f):

def inner():

start_time = time.time()

f()

end_time = time.time()

print(end_time-start_time)

return inner

#show_time(f) is a decoration function

foo = show_time(foo)

bar = show_time(bar)

foo()

bar()

上面的代码定义了两个函数foo()和bar(). 通过装饰器函数show_time(f),在其内部定义了另一个闭包函数inner(),再通过foo=show_time(foo),bar=show_time(bar)语句将foo()和bar()函数同装饰器函数关联起来,从而实现了不改变foo()和bar()函数代码,增加打印程序执行时间的功能.程序的执行结果如下:

1.0011370182

2.00142788887

显然,程序在没有改变原函数的情况下,实现了调用原函数显示程序运行时间的功能.

上面的小程序可以将调用装饰器的语句改成@decoration的形式,效果是造价的,改变后的程序如下,其功能和上面的程序完全相同.

import time

@show_time #foo = show_time(foo)

def foo():

time.sleep(1)

@show_time #bar = show_time(bar)

def bar():

time.sleep(2)

def show_time(f):

def inner():

start_time = time.time()

f()

end_time = time.time()

print(end_time-start_time)

return inner

#show_time(f) is a decoration function

foo()

bar()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python装饰器详解51-python装饰器使用实例详解相关推荐

  1. python画椭圆-python opencv圆、椭圆与任意多边形的绘制实例详解

    圆形的绘制 : OpenCV中使用circle(img,center,radius,color,thickness=None,lineType=None,shift=None)函数来绘制圆形 impo ...

  2. python字库转文字图片_对Python生成汉字字库文字,以及转换为文字图片的实例详解...

    对Python生成汉字字库文字,以及转换为文字图片的实例详解 发布时间:2020-10-05 17:20:03

  3. python的对象数组_Python当中的array数组对象实例详解

    计算机为数组分配一段连续的内存,从而支持对数组随机访问: 由于项的地址在编号上是连续的,数组某一项的地址可以通过将两个值相加得出,即将数组的基本地址和项的偏移地址相加. 数组的基本地址就是数组的第一项 ...

  4. python控制nao机器人_python控制nao机器人身体动作实例详解

    本文实例为大家分享了python控制nao机器人身体动作的具体代码,供大家参考,具体内容如下 今天读的代码,顺便写了出来,与文档的对比,差不多. import sys import motion im ...

  5. 每日一练:Python爬虫爬取全国新冠肺炎疫情数据实例详解,使用beautifulsoup4库实现

    Python 爬虫篇 - 爬取全国新冠肺炎疫情数据实例详解 效果图展示 第一章:疫情信息的下载与数据提取 ① 爬取页面数据到本地 ② json 字符串正则表达式分析 ③ 提取数据中的 json 字符串 ...

  6. python编程字典100例_python中字典(Dictionary)用法实例详解

    本文实例讲述了python中字典(Dictionary)用法.分享给大家供大家参考.具体分析如下: 字典(Dictionary)是一种映射结构的数据类型,由无序的"键-值对"组成. ...

  7. python的类和对象_Python面向对象之类和对象实例详解

    本文实例讲述了Python面向对象之类和对象.分享给大家供大家参考,具体如下: 类和对象(1) 对象是什么? 对象=属性(静态)+方法(动态): 属性一般是一个个变量:方法是一个个函数: #类的属性 ...

  8. python 元组拆包_Python元组拆包和具名元组解析实例详解

    前言 在Python中元组是一个相较于其他语言比较特别的一个内置序列类型.有些python入门教程把元组成为"不可变的列表",这种说法是不完备的,其并没有完整的概括元组的特点.除了 ...

  9. python比例图_python在地图上画比例的实例详解

    现在用python画图已经难不倒一直跟小编学习的小伙伴们了,甚至有的小伙伴画图比小编还要厉害.为此小编还偷偷下了一番功夫,画图这种事情,细节上的完善肯定能让图片更加好看.所以小编知道大家会画地图,但是 ...

  10. python中symbols函数用法_Python基础之函数用法实例详解

    本文以实例形式较为详细的讲述了Python函数的用法,对于初学Python的朋友有不错的借鉴价值.分享给大家供大家参考之用.具体分析如下: 通常来说,Python的函数是由一个新的语句编写,即def, ...

最新文章

  1. 滑块验证码识别 java版本
  2. Android --- SharePreference 存储与数据库存储的效率分析
  3. java怎么播放不了声音,怎么在java application中播放声音
  4. 提升 .NET 程序性能的 一些 原则
  5. linux lspci信息 详解_Linux引导之EFI SHELL详解
  6. .NET开发过程中的全文索引使用技巧之Solr
  7. 反射的基本知识(详解)
  8. Android Activity之间传递类对象
  9. 产品经理和开发打起来了
  10. 用户眼中的银行信息化-我的开博感言
  11. 谷歌大脑推出视觉领域任务自适应基准:VTAB
  12. jar包里java.lang.NoSuchMethodError异常,
  13. linux版英特尔酷睿i7,[图]英特尔酷睿i7 1165G7和AMD Ryzen 7 Pro 4750U Linux性能对比
  14. 数据结构视频|408视频|计算机组成原理视频|计算机网络视频
  15. 解决Solidworks 2016 安装注册Activator.GUI.SSQ卡顿 闪退 崩溃等问题
  16. 3dmax塌陷在哪里?怎么用?
  17. zoj题目分类详细的
  18. ghost服务器系统镜像文件,带RAID服务器能GHOST备份吗?
  19. 阿里云ARM服务器通用型g6r实例CPU性能参数详解
  20. 2013-07-22 码市-武汉 返程票

热门文章

  1. jQuery常用选择器有哪些?
  2. vue单表table
  3. JavaScript学习笔记:数组
  4. 2.图像作为函数 | 图像的量化、大小、类型、位置以及Matlab使用_4
  5. php 调用父类变量,PHP-通过实例化父类访问常量
  6. java编程 队列_5.1、顺序队列(java实现)
  7. 2017.10.7 最长上升子序列 思考记录
  8. 【英语学习】【WOTD】comminute 释义/词源/示例
  9. 自定义指令监听多个div_Vue 3 | 自定义指令的新玩法
  10. Java图片压缩 BufferedImage Linux 下代码阻塞不工作