本文实例讲述了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

运行结果:

func1 python

over!

very good!

示例二: #!/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

运行结果:

hello python 之前!

hello python

hello python 之后!

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

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

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

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐