Python装饰器用法示例小结


Posted in Python onFebruary 11, 2018

本文实例讲述了Python装饰器用法。分享给大家供大家参考,具体如下:

下面的程序示例了python装饰器的使用:

示例一:

def outer(fun):
  print fun
  def wrapper(arg):
    result=fun(arg)
    print 'over!'
    return result
  return wrapper
@outer
def func1(arg):
  print 'func1',arg
  return 'very good!'
response=func1('python')
print response
print func1

运行结果:

<function func1 at 0x02A67D70>
func1 python
over!
very good!
<function wrapper at 0x02A67CF0>

示例二:

#!/usr/bin/env python
#coding:utf-8
def Filter(before_func,after_func):
  print before_func
  print after_func
  def outer(main_func):
    print main_func
    def wrapper(request,kargs):
      before_result=before_func(request,kargs)
      if(before_result!=None):
        return before_result;
      main_result=main_func(request,kargs)
      if(main_result!=None):
        return main_result;
      after_result=after_func(request,kargs)
      if(after_result!=None):
        return after_result;
    return wrapper
  return outer
def before(request,kargs):
  print request,kargs,'之前!'
def after(request,kargs):
  print request,kargs,'之后!'
@Filter(before,after)
def main(request,kargs):
  print request,kargs
main('hello','python')
print main

运行结果:

<function before at 0x02AC7BF0>
<function after at 0x02AC7C30>
<function main at 0x02AC7CF0>
hello python 之前!
hello python
hello python 之后!
<function wrapper at 0x02AC7D30>

我们可以加上很多断点,在Debug模式下运行,查看程序一步一步的运行轨迹。。。

更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python日志模块logging简介
Apr 13 Python
利用Python获取赶集网招聘信息前篇
Apr 18 Python
Python计时相关操作详解【time,datetime】
May 26 Python
Python实现文件信息进行合并实例代码
Jan 17 Python
tf.truncated_normal与tf.random_normal的详细用法
Mar 05 Python
Python BS4库的安装与使用详解
Aug 08 Python
python3实现高效的端口扫描
Aug 31 Python
python 魔法函数实例及解析
Sep 25 Python
Python编译为二进制so可执行文件实例
Dec 23 Python
Python实现实时数据采集新型冠状病毒数据实例
Feb 04 Python
python环境搭建和pycharm的安装配置及汉化详细教程(零基础小白版)
Aug 19 Python
利用python进行文件操作
Dec 04 Python
python PyTorch预训练示例
Feb 11 #Python
TensorFlow中权重的随机初始化的方法
Feb 11 #Python
python的staticmethod与classmethod实现实例代码
Feb 11 #Python
Python语言的变量认识及操作方法
Feb 11 #Python
利用Opencv中Houghline方法实现直线检测
Feb 11 #Python
tensorflow输出权重值和偏差的方法
Feb 10 #Python
详解tensorflow实现迁移学习实例
Feb 10 #Python
You might like
使PHP自定义函数返回多个值
2006/11/26 PHP
关于php连接mssql:pdo odbc sql server
2011/07/20 PHP
PHP计算日期相差天数实例分析
2016/02/23 PHP
PDO::errorInfo讲解
2019/01/28 PHP
javascript优先加载笔记代码
2008/09/30 Javascript
基于jQuery的树控件实现代码(asp.net+json)
2010/07/11 Javascript
jQuery实现菜单式图片滑动切换
2015/03/14 Javascript
JavaScript基础语法之js表达式
2016/06/07 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
react系列从零开始_简单谈谈react
2017/07/06 Javascript
jquery根据name取得select选中的值实例(超简单)
2018/01/25 jQuery
Koa2微信公众号开发之消息管理
2018/05/16 Javascript
详解创建自定义的Angular Schematics
2018/06/06 Javascript
layer.open 子页面弹出层向父页面传输数据的例子
2019/09/26 Javascript
JavaScript异步操作的几种常见处理方法实例总结
2020/05/11 Javascript
Python __setattr__、 __getattr__、 __delattr__、__call__用法示例
2015/03/06 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
详解Python locals()的陷阱
2019/03/26 Python
关于python pycharm中输出的内容不全的解决办法
2020/01/10 Python
python解释器pycharm安装及环境变量配置教程图文详解
2020/02/26 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
绝对令人的惊叹的CSS3折叠效果(3D效果)整理
2012/12/30 HTML / CSS
HTML5 本地存储 LocalStorage详解
2016/06/24 HTML / CSS
施华洛世奇澳大利亚官网:SWAROVSKI澳大利亚
2017/01/06 全球购物
Boutique 1美国:阿联酋奢侈时尚零售商
2017/10/16 全球购物
TripAdvisor印尼站:全球领先的旅游网站
2018/03/15 全球购物
美术师范毕业生自荐信
2013/11/16 职场文书
大学生创业计划书的用途
2014/01/08 职场文书
商学院大学生求职的自我评价
2014/03/12 职场文书
给校长的建议书100字
2014/05/16 职场文书
保洁公司服务承诺书
2014/05/28 职场文书
2014年十八届四中全会思想汇报范文
2014/10/17 职场文书
期末个人总结范文
2015/02/13 职场文书
装饰技术负责人岗位职责
2015/04/13 职场文书
爱护环境卫生倡议书
2015/04/29 职场文书
监守自盗观后感
2015/06/10 职场文书