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实现堆排序的方法详解
May 03 Python
python实现对excel进行数据剔除操作实例
Dec 07 Python
每天迁移MySQL历史数据到历史库Python脚本
Apr 13 Python
python实现猜单词小游戏
May 22 Python
python 读取摄像头数据并保存的实例
Aug 03 Python
对Python 获取类的成员变量及临时变量的方法详解
Jan 22 Python
python批量读取文件名并写入txt文件中
Sep 05 Python
Python多线程threading join和守护线程setDeamon原理详解
Mar 18 Python
Python中的全局变量如何理解
Jun 04 Python
Django-celery-beat动态添加周期性任务实现过程解析
Nov 26 Python
Python命令行参数定义及需要注意的地方
Nov 30 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
Mar 02 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
为什么夜间收到的中波电台比白天多
2021/03/01 无线电
PHP脚本的10个技巧(7)
2006/10/09 PHP
PHP的中问验证码
2006/11/25 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
PHP开发中AJAX技术的简单应用
2015/12/11 PHP
使用PHP实现微信摇一摇周边红包
2016/01/04 PHP
PHP使用第三方即时获取物流动态实例详解
2017/04/27 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
js中小数转换整数的方法
2014/01/26 Javascript
全面解析Javascript无限添加QQ好友原理
2016/06/15 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
jQuery实现的简单百分比进度条效果示例
2016/08/01 Javascript
JQuery获取鼠标进入和离开容器的方向
2016/12/29 Javascript
Bootstrap框架安装使用详解
2017/01/21 Javascript
微信小程序开发之入门实例教程篇
2017/03/07 Javascript
vue.js利用Object.defineProperty实现双向绑定
2017/03/09 Javascript
基于nodejs 的多页面爬虫实例代码
2017/05/31 NodeJs
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
详解Nuxt.js部署及踩过的坑
2018/08/07 Javascript
小程序实现列表多个批量倒计时
2021/01/29 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
2020/01/26 Javascript
[28:05]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第一场 10月30日
2020/10/31 DOTA
wxpython 学习笔记 第一天
2009/03/16 Python
一个基于flask的web应用诞生 flask和mysql相连(4)
2017/04/11 Python
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
详解python常用命令行选项与环境变量
2020/02/20 Python
python 写函数在一定条件下需要调用自身时的写法说明
2020/06/01 Python
Python实现计算图像RGB均值方式
2020/06/04 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
阿玛尼美国官方网站:Armani.com
2016/11/25 全球购物
Mybag美国/加拿大:英国奢华包包和名牌手袋网站
2020/02/16 全球购物
给校长的建议书600字
2014/05/15 职场文书
关爱残疾人演讲稿
2014/05/24 职场文书
2015年领班工作总结
2015/04/29 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang