Python装饰器语法糖


Posted in Python onJanuary 02, 2019

Python装饰器语法糖代码示例

####装饰器的固定格式
##普通版本
def timer(func):
  def inner(*args,**kwargs):
    '''执行函数之前要做的'''
    ret = func(*args,**kwargs)
    '''执行函数之后要做的'''
    return ret
  return inner
##wraps版本
from functools import wraps
def deco(func):
  @wraps(func) #加在最内层函数正上方
  def wrapper(*args,**kwargs):
    return func(*args,**kwargs)
  return wrapper
####带参数的装饰器
def outer(flag):
  def timer(func):
    def inner(*args,**kwargs):
      if flag:
        print('''执行函数之前要做的''')
      ret = func(*args,**kwargs)
      if flag:
        print('''执行函数之后要做的''')
      return ret
    return inner
  return timer
@outer(True)
def func():
  return '返回值'
x=func()
print(x)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
Python中使用第三方库xlutils来追加写入Excel文件示例
Apr 05 Python
Python正则简单实例分析
Mar 21 Python
Python对象类型及其运算方法(详解)
Jul 05 Python
Centos下实现安装Python3.6和Python2共存
Aug 15 Python
python虚拟环境迁移方法
Jan 03 Python
解决django后台样式丢失,css资源加载失败的问题
Jun 11 Python
python通过TimedRotatingFileHandler按时间切割日志
Jul 17 Python
python argparser的具体使用
Nov 10 Python
Python自动登录QQ的实现示例
Aug 28 Python
python 如何上传包到pypi
Dec 24 Python
python excel和yaml文件的读取封装
Jan 12 Python
python读取excel数据并且画图的实现示例
Feb 08 Python
Python WEB应用部署的实现方法
Jan 02 #Python
Python功能点实现:函数级/代码块级计时器
Jan 02 #Python
详解如何在Apache中运行Python WSGI应用
Jan 02 #Python
漂亮的Django Markdown富文本app插件的实现
Jan 02 #Python
对Python发送带header的http请求方法详解
Jan 02 #Python
Django渲染Markdown文章目录的方法示例
Jan 02 #Python
使用python 打开文件并做匹配处理的实例
Jan 02 #Python
You might like
令PHP初学者头疼十四条问题大总结
2008/11/12 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
2011/07/03 PHP
PHP实现根据设备类型自动跳转相应页面的方法
2014/07/24 PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
2016/11/07 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
Laravel Validator 实现两个或多个字段联合索引唯一
2019/05/08 PHP
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
2010/05/24 Javascript
node.js中的fs.read方法使用说明
2014/12/17 Javascript
Java遍历集合方法分析(实现原理、算法性能、适用场合)
2016/04/25 Javascript
VUEJS实战之构建基础并渲染出列表(1)
2016/06/13 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
2016/07/12 Javascript
详解用node.js实现简单的反向代理
2017/06/26 Javascript
微信小程序 swiper组件构建轮播图的实例
2017/09/20 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
2018/05/16 Javascript
js中Object.defineProperty()方法的不详解
2018/07/09 Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
2018/09/12 Javascript
微信小程序实现简易table表格
2020/06/19 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
2019/03/14 Javascript
微信小程序人脸识别功能代码实例
2019/05/07 Javascript
微信小程序 腾讯地图SDK 获取当前地址实现解析
2019/08/12 Javascript
JS多个表单数据提交下的serialize()应用实例分析
2019/08/27 Javascript
vue全屏事件开发详解
2020/06/17 Javascript
Vue实现跑马灯效果
2020/05/25 Javascript
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
2019/01/17 Python
Python编写memcached启动脚本代码实例
2020/08/14 Python
internal修饰符起什么作用
2013/12/16 面试题
医学生个人求职信范文
2013/09/24 职场文书
编辑求职信样本
2013/12/16 职场文书
学校教研活动总结
2014/07/02 职场文书
大学生心理活动总结
2014/07/04 职场文书
租房安全协议书
2014/08/20 职场文书
运动会报道稿大全
2015/07/23 职场文书
关于Python中*args和**kwargs的深入理解
2021/08/07 Python
SQL Server表分区降低运维和维护成本
2022/04/08 SQL Server