这个装饰器就是万能的了,只需要把111和222分别替代为提前,和之后处理的功能就好

适用于装饰函数

# 装饰器函数
def cont_time(func):"""统计时间的装饰器"""def inner(*args, **kwargs):print('111')res = func(*args, **kwargs)print('222')return resreturn inner

》随堂

import time# 装饰器函数
def cont_time(func):"""统计时间的装饰器"""def inner(*args, **kwargs):start_time = time.time()print('计时开始。。。')res = func(*args, **kwargs)end_time = time.time()print('计时结束,总共耗时{:.2f}秒'.format(end_time - start_time))return resreturn inner# 功能函数
@cont_time  #do_work = count_time(do_work)  --->  do_work = inner
def do_work(gender="男"):"""有耗时的函数"""print('do_work开始')time.sleep(1)print('do_work结束')@cont_time   # do_work2 = cont_time(do_work2)
def do_work2(name, age, grade):print('do_work2开始')print(name, age ,grade)time.sleep(1)print('do_work2结束')return 2do_work(gender="女")   # inner()
res = do_work2("张三", 18, 20)  # inner("张三")
print(res)

python-万能函数装饰器相关推荐

  1. python中tracer函数意思_浅析Python编写函数装饰器

    本节主要介绍编写函数装饰器的相关内容. 跟踪调用 如下代码定义并应用一个函数装饰器,来统计对装饰的函数的调用次数,并且针对每一次调用打印跟踪信息. 这是一个通过类装饰的语法写成的装饰器,测试如下: 运 ...

  2. Python笔记-函数装饰器

    在调用某个方法前,想调用一些额外的东西. 个人感觉就和C++里面,带一个函数指针的的参数,在某个函数执行前,调用这个函数指针,或者,在某个函数中,直接调用这个函数.比如插入日志等.功能. 但在pyth ...

  3. python 闭包_一起看流畅的python:函数装饰器和闭包

    装饰器 装饰器是可调用的对象,其参数是另一个函数(被装饰的函数).装 饰器可能会处理被装饰的函数,然后把它返回,或者将其替换成另一个 函数或可调用对象. 装饰器的一个关键特性是,它们在被装饰的函数定义 ...

  4. python 匿名函数装饰器

    匿名函数 关键字lambda表示匿名函数,冒号前面的x表示函数参数 匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果. >>> list(map( ...

  5. Python笔记-函数装饰器的缺点

    装饰器的好处,复用了代码,缺点就是原函数的元信息不见了 比如函数docstring._name_.参数列表 如下代码: def use_logging(level = "debug" ...

  6. python装饰器函数-Python函数装饰器指南

    Python 具有强大的功能和富有表现力的语法.我最喜欢的装饰之一.在设计模式的上下文中,装饰器动态更改方法或类功能,而不必直接使用子类.当您需要扩展功能,但不想修改原函数时,这是理想的选择.我们可以 ...

  7. python函数修饰器_Python函数装饰器指南

    Python 具有强大的功能和富有表现力的语法.我最喜欢的装饰之一.在设计模式的上下文中,装饰器动态更改方法或类功能,而不必直接使用子类.当您需要扩展功能,但不想修改原函数时,这是理想的选择.我们可以 ...

  8. python函数装饰器详解_Python语言函数装饰器用法实例详解

    这篇文章主要介绍了Python语言函数装饰器用法,以实例形式较为详细的分析了Python函数装饰器的常见使用技巧,需要的朋友可以参考下,希望对大家学习Python语言有所帮助. 本文实例讲述了pyth ...

  9. python装饰器函数-Python函数装饰器常见使用方法实例详解

    本文实例讲述了Python函数装饰器常见使用方法.分享给大家供大家参考,具体如下: 一.装饰器 首先,我们要了解到什么是开放封闭式原则? 软件一旦上线后,对修改源代码是封闭的,对功能的扩张是开放的,所 ...

  10. Python:从requests请求重试到万能重试装饰器

    今天来介绍下Python中从requests请求重试到万能重试装饰器. 从requests请求重试到万能重试装饰器 重试,在编写代码的过程中,是一个很常见的需求. 比如: 请求重试(例如:超时) 文件 ...

最新文章

  1. JS事件调试 - 查找HTML元素绑定的事件以及绑定代码所在位置
  2. CodeChef Cards, bags and coins [DP 泛型背包]
  3. jenkins php build,PHP+Jenkins 持续集成
  4. 用互斥锁实现程序只能有一个实例
  5. 使用SAP CRM Application Enhancement Tool创建表格类型的扩展字段
  6. Eigen入门之密集矩阵 5 - 再谈Matrix初始化
  7. 超级详细备注的代码:Python帮助您高效通过英语六级考试
  8. 面向.Net程序员的Sql版本管理
  9. 【数据结构】栈、队列、堆的python实现
  10. dsn服务器显示问题,DNS 服务器出现4004错误解决方法
  11. 复合函数求导经典例题_【2017年整理】多元函数求导经典例题.ppt
  12. arm开发板与windows下的pjsip建立通话
  13. Java后端以及web前端及echarts框架词云分析
  14. asp.net Web项目中使用Log4Net进行错误日志记录
  15. 曲线救国的就业路线是否合理?
  16. 背后的力量 | 搭建新型IT基础架构 华云数据助力妇幼保健院提升数字化医院建设水平
  17. ImageReader回调YUV数据转换成JPEG图片
  18. 轨道不平顺-振动响应-信号分析方法(持续整理中...)
  19. Hive表设置支持中文注释、中文表数据导入
  20. linux安装ncurses教程,Ubuntu 安装 Ncurses

热门文章

  1. ubuntu系统显卡、显卡驱动、CUDA、CUDNN的介绍以及版本匹配问题
  2. PS 菜单栏显示与隐藏 - 快捷键
  3. RequireJS的加载、初始化等等 - 代码格式篇
  4. 印记博客IBO博客系统 v2.0.2源码
  5. 让网站变成灰色插件 可以设定特殊时间
  6. 星宿UI V1.1-后台优化激励视频判断插件
  7. wetech-cms内容管理系统源码
  8. 微信独立精彩互换抢红包系统源码ThinkPHP开源版
  9. Spring Boot集成Redis缓存之模拟高并发场景处理
  10. CSS3: 动画循环执行(带延迟)的实现