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的Zato发送AMQP消息的教程
Apr 16 Python
Python的__builtin__模块中的一些要点知识
May 02 Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
Dec 15 Python
Request的中断和ErrorHandler实例解析
Feb 12 Python
wxPython实现窗口用图片做背景
Apr 25 Python
基于Django URL传参 FORM表单传数据 get post的用法实例
May 28 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
Jan 07 Python
django 控制页面跳转的例子
Aug 06 Python
Python利用matplotlib绘制约数个数统计图示例
Nov 26 Python
Python 获取numpy.array索引值的实例
Dec 06 Python
pyenv虚拟环境管理python多版本和软件库的方法
Dec 26 Python
django 认证类配置实现
Nov 11 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 动态多文件上传
2009/01/18 PHP
php教程之魔术方法的使用示例(php魔术函数)
2014/02/12 PHP
php编程每天必学之表单验证
2016/03/01 PHP
PHP实现的CURL非阻塞调用类
2018/07/26 PHP
window.open()弹出居中的窗口
2007/02/01 Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
2013/02/04 Javascript
JavaScript数值转换的三种方式总结
2014/07/31 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
2014/08/16 Javascript
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
jquery实现的伪分页效果代码
2015/10/29 Javascript
常用javascript表单验证汇总
2020/07/20 Javascript
JS简单实现点击复制链接的方法
2016/08/03 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
2016/12/28 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
微信小程序 在线支付功能的实现
2017/03/14 Javascript
webpack4的迁移的使用方法
2018/05/25 Javascript
微信小程序引用iconfont图标的方法
2018/10/22 Javascript
详解vue 路由跳转四种方式 (带参数)
2019/04/28 Javascript
node中IO以及定时器优先级详解
2019/05/10 Javascript
jquery实现购物车基本功能
2019/10/25 jQuery
如何实现vue的tree组件
2020/12/03 Vue.js
Python实现的飞速中文网小说下载脚本
2015/04/23 Python
深入解析Python编程中JSON模块的使用
2015/10/15 Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
2016/09/19 Python
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
2017/07/24 Python
python实现月食效果实例代码
2019/06/18 Python
python格式化输出保留2位小数的实现方法
2019/07/02 Python
python matplotlib库直方图绘制详解
2019/08/10 Python
Python猫眼电影最近上映的电影票房信息
2020/09/18 Python
Pytorch 中的optimizer使用说明
2021/03/03 Python
html5使用window.postMessage进行跨域实现数据交互的一次实战
2021/02/24 HTML / CSS
比较基础的php面试题及答案-填空题
2014/04/26 面试题
档案信息化建设方案
2014/05/16 职场文书
文明旅游倡议书
2015/04/28 职场文书
2015暑假打工实践报告
2015/07/13 职场文书
团结主题班会
2015/08/13 职场文书