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判断变量是否已经定义的方法
Aug 18 Python
python内存管理分析
Apr 08 Python
Python 爬虫多线程详解及实例代码
Oct 08 Python
Python语言实现将图片转化为html页面
Dec 06 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
Sep 19 Python
Python微医挂号网医生数据抓取
Jan 24 Python
Python操作redis实例小结【String、Hash、List、Set等】
May 16 Python
Python帮你微信头像任意添加装饰别再@微信官方了
Sep 25 Python
安装并免费使用Pycharm专业版(学生/教师)
Sep 24 Python
python boto和boto3操作bucket的示例
Oct 30 Python
详解python3 GUI刷屏器(附源码)
Feb 18 Python
Python Matplotlib绘制等高线图与渐变色扇形图
Apr 14 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代码
2010/02/16 PHP
分享十款最出色的PHP安全开发库中文详细介绍
2015/03/22 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
2015/12/11 PHP
实例讲解PHP设计模式编程中的简单工厂模式
2016/02/29 PHP
PHP 使用二进制保存用户状态的实例
2018/01/29 PHP
javascript中数组中求最大值示例代码
2013/12/18 Javascript
用jquery的方法制作一个简单的导航栏
2014/06/23 Javascript
Javascript中使用parseInt函数需要注意的问题
2015/04/02 Javascript
ztree获取选中节点时不能进入可视区域出现BUG如何解决
2015/12/03 Javascript
javascript中call apply 与 bind方法详解
2016/03/10 Javascript
JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
2016/06/24 Javascript
jQuery实现微信长按识别二维码功能
2016/08/26 Javascript
jQuery实现的无限级下拉菜单功能示例
2016/09/12 Javascript
jQuery实现简单的网页换肤效果示例
2016/09/18 Javascript
js制作简单的音乐播放器的示例代码
2017/08/28 Javascript
纯js实现画一棵树的示例
2017/09/05 Javascript
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
webpack file-loader和url-loader的区别
2019/01/15 Javascript
实例讲解JavaScript预编译流程
2019/01/24 Javascript
JSONP 的原理、理解 与 实例分析
2020/05/16 Javascript
Python递归函数定义与用法示例
2017/06/02 Python
python3学习笔记之多进程分布式小例子
2018/02/13 Python
对python中xlsx,csv以及json文件的相互转化方法详解
2018/12/25 Python
Python去除字符串前后空格的几种方法
2019/03/04 Python
用python3 urllib破解有道翻译反爬虫机制详解
2019/08/14 Python
Numpy 中的矩阵求逆实例
2019/08/26 Python
Python使用graphviz画流程图过程解析
2020/03/31 Python
Python dict的常用方法示例代码
2020/06/23 Python
python计算auc的方法
2020/09/09 Python
Python之Sklearn使用入门教程
2021/02/19 Python
Tostadora意大利:定制T恤
2019/04/08 全球购物
钱塘江大潮导游词
2015/02/03 职场文书
教师读书活动心得体会
2016/01/14 职场文书
史上最全书信经典范文大全(建议收藏)
2019/07/10 职场文书
Django 实现jwt认证的示例
2021/04/30 Python
netty 实现tomcat的示例代码
2022/06/05 Servers