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中获得当前目录和上级目录的实现方法
Oct 12 Python
利用Python2下载单张图片与爬取网页图片实例代码
Dec 25 Python
python高阶爬虫实战分析
Jul 29 Python
[原创]Python入门教程4. 元组基本操作
Oct 31 Python
利用Python的sympy包求解一元三次方程示例
Nov 22 Python
python实现从ftp服务器下载文件
Mar 03 Python
Python实现AI自动抠图实例解析
Mar 05 Python
Python判断字符串是否为空和null方法实例
Apr 26 Python
python 写函数在一定条件下需要调用自身时的写法说明
Jun 01 Python
基于Python词云分析政府工作报告关键词
Jun 02 Python
Python 实现定积分与二重定积分的操作
May 26 Python
Python TypeError: ‘float‘ object is not subscriptable错误解决
Dec 24 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
windows下开发并编译PHP扩展的方法
2011/03/18 PHP
PHP文件上传类实例详解
2016/04/08 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
2018/06/06 PHP
Centos7 Yum安装PHP7.2流程教程详解
2019/07/02 PHP
Javascript事件热键兼容ie|firefox
2010/12/30 Javascript
修改好的jquery滚动字幕效果实现代码
2011/06/22 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
jquery增加和删除元素的方法
2015/01/14 Javascript
原生js实现移动开发轮播图、相册滑动特效
2015/04/17 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
react native实现往服务器上传网络图片的实例
2017/08/07 Javascript
vue学习笔记之v-if和v-show的区别
2017/09/20 Javascript
JS实现简单表格排序操作示例
2017/10/07 Javascript
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
小程序点击图片实现png转jpg
2019/10/22 Javascript
JavaScript对象原型链原理详解
2020/02/05 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
解决vue初始化项目一直停在downloading template的问题
2020/11/09 Javascript
Python批量修改文件后缀的方法
2014/01/26 Python
浅谈python中字典append 到list 后值的改变问题
2018/05/04 Python
使用Django连接Mysql数据库步骤
2019/01/15 Python
Python爬虫实战之12306抢票开源
2019/01/24 Python
使用selenium模拟登录解决滑块验证问题的实现
2019/05/10 Python
Django实现简单网页弹出警告代码
2019/11/15 Python
flask框架自定义url转换器操作详解
2020/01/25 Python
CSS3 mask 遮罩的具体使用方法
2017/11/03 HTML / CSS
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
工程力学硕士生的自我评价范文
2013/11/16 职场文书
银行求职信个人范文
2013/12/16 职场文书
社区敬老月活动实施方案
2014/02/17 职场文书
还款承诺书范文
2014/05/20 职场文书
好好学习保证书
2015/02/26 职场文书
公司年会晚会开幕词
2019/04/02 职场文书
MySQL主从复制断开的常用修复方法
2021/04/07 MySQL
解决springboot druid数据库连接失败后一直重连的方法
2022/04/19 Java/Android
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL