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 相关文章推荐
仅用500行Python代码实现一个英文解析器的教程
Apr 02 Python
python获取目录下所有文件的方法
Jun 01 Python
Python实现的双色球生成功能示例
Dec 18 Python
Python中使用支持向量机(SVM)算法
Dec 26 Python
pandas 将list切分后存入DataFrame中的实例
Jul 03 Python
python利用百度AI实现文字识别功能
Nov 27 Python
Python根据成绩分析系统浅析
Feb 11 Python
Python3.7 读取 mp3 音频文件生成波形图效果
Nov 05 Python
pytorch 实现查看网络中的参数
Jan 06 Python
keras做CNN的训练误差loss的下降操作
Jun 22 Python
最简单的matplotlib安装教程(小白)
Jul 28 Python
python机器学习Github已达8.9Kstars模型解释器LIME
Nov 23 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
UCenter中的一个可逆加密函数authcode函数代码
2010/07/20 PHP
初学PHP的朋友 经常问的一些问题。不断更新
2011/08/11 PHP
php检测图片木马多进制编程实践
2013/04/11 PHP
9个实用的PHP代码片段分享
2015/01/22 PHP
Yii2增加验证码步骤详解
2016/04/25 PHP
php版交通银行网银支付接口开发入门教程
2016/09/26 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
2018/05/11 PHP
PHP实现 APP端微信支付功能
2018/06/22 PHP
基于laravel belongsTo使用详解
2019/10/18 PHP
小议Function.apply()之二------利用Apply的参数数组化来提高 JavaScript程序性能
2006/11/30 Javascript
javascript下阻止表单重复提交、防刷新、防后退
2007/08/17 Javascript
Extjs Ajax 乱码问题解决方案
2009/04/15 Javascript
IE JS无提示关闭窗口不提示的方法
2010/04/29 Javascript
javascript类型系统 Array对象学习笔记
2016/01/09 Javascript
浅谈Node.js:Buffer模块
2016/12/05 Javascript
JavaScript函数节流的两种写法
2017/04/07 Javascript
Vue中使用sass实现换肤功能
2018/09/07 Javascript
小程序分页实践之编写可复用分页组件
2019/07/18 Javascript
利用Python的Twisted框架实现webshell密码扫描器的教程
2015/04/16 Python
Python使用django搭建web开发环境
2017/06/09 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
查看Python依赖包及其版本号信息的方法
2019/08/13 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
pytorch中index_select()的用法详解
2021/01/06 Python
使用OpenCV实现人脸图像卡通化的示例代码
2021/01/15 Python
django使用多个数据库的方法实例
2021/03/04 Python
HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)
2014/05/07 HTML / CSS
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
美国葡萄酒网上商店:Martha Stewart Wine Co.
2019/03/17 全球购物
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
手术室护士自我鉴定
2013/10/14 职场文书
建筑设计专业求职自我评价
2014/03/02 职场文书
酒店管理求职信
2014/06/09 职场文书
投资意向协议书
2015/01/29 职场文书
十大经典日本动漫排行榜 海贼王第三,犬夜叉仅第八
2022/03/18 日漫