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 相关文章推荐
Python3.2中的字符串函数学习总结
Apr 23 Python
Python3.x版本中新的字符串格式化方法
Apr 24 Python
python动态网页批量爬取
Feb 14 Python
详解Python的collections模块中的deque双端队列结构
Jul 07 Python
python使用str & repr转换字符串
Oct 13 Python
python中将一个全部为int的list 转化为str的list方法
Apr 09 Python
PYTHON基础-时间日期处理小结
May 05 Python
pytorch 求网络模型参数实例
Dec 30 Python
python实现的批量分析xml标签中各个类别个数功能示例
Dec 30 Python
解决python运行启动报错问题
Jun 01 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
Sep 14 Python
如何用python开发Zeroc Ice应用
Jan 29 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筛选不存在的图片资源
2015/04/28 PHP
JavaScript 特殊字符
2007/04/05 Javascript
ExtJs 3.1 XmlTreeLoader Example Error
2010/02/09 Javascript
用jQuery中的ajax分页实现代码
2011/09/20 Javascript
基于JQuery的一句话搞定手风琴菜单
2012/09/14 Javascript
JQuery设置文本框和密码框得到焦点时的样式
2013/08/30 Javascript
自己写的Javascript计算时间差函数
2013/10/28 Javascript
提高jQuery性能优化的技巧
2015/08/03 Javascript
点击页面任何位置隐藏div的实现方法
2016/09/05 Javascript
常用的javascript设计模式
2017/01/11 Javascript
详解react-router4 异步加载路由两种方法
2017/09/12 Javascript
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案
2018/05/15 Javascript
解决vue 引入子组件报错的问题
2018/09/06 Javascript
axios 封装上传文件的请求方法
2018/09/26 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
2019/10/15 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
2020/08/25 Javascript
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
python encode和decode的妙用
2009/09/02 Python
Python中几种导入模块的方式总结
2017/04/27 Python
Python 利用内置set函数对字符串和列表进行去重的方法
2018/06/29 Python
Python实现将数据写入netCDF4中的方法示例
2018/08/30 Python
Python  unittest单元测试框架的使用
2018/09/08 Python
django中forms组件的使用与注意
2019/07/08 Python
Python3enumrate和range对比及示例详解
2019/07/13 Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
2020/01/04 Python
python如何实现不可变字典inmutabledict
2020/01/08 Python
详解Python中的路径问题
2020/09/02 Python
canvas里面如何基于随机点绘制一个多边形的方法
2018/06/13 HTML / CSS
波兰家具和室内装饰品购物网站:Vivre
2018/04/10 全球购物
美国女士内衣在线折扣商店:One Hanes Place
2019/03/24 全球购物
英国泽西岛植物:Jersey Plants Direct
2019/08/07 全球购物
银行实习的自我鉴定
2013/12/10 职场文书
十佳护士获奖感言
2014/02/18 职场文书
防溺水主题班会教案
2015/08/12 职场文书
小学运动会开幕词
2016/03/04 职场文书