Python装饰器用法示例小结

yipeiwu_com6年前Python基础

本文实例讲述了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 numpy 提取矩阵的某一行或某一列的实例

如下所示: import numpy as np a=np.arange(9).reshape(3,3) a Out[31]: array([[0, 1, 2], [3,...

Python 文件操作技巧(File operation) 实例代码分析

常用的module是 os ,os.path 和shutil,所以要先引入他们. python遍历文件夹和文件 这个也许是最常用的功能,如下: 复制代码 代...

Python变量访问权限控制详解

Python变量访问权限控制详解

oop1.py文件代码 # user/bin/python class Foo: def bar(self): print('ok') def hello(self, name):...

使用Python开发windows GUI程序入门实例

今天终于可以用wxPython开发GUI程序了,非常高兴。把其中的一些注意点写下来以供参考。在windows XP平台下,首先需要做以下环境的配置: 1. 首先是安装python ,安装...

Python中处理字符串的相关的len()方法的使用简介

 len()方法返回字符串的长度。 语法 以下是len()方法的语法: len( str ) 参数     NA 返回值 此方法...