首页 > 编程语言 > 详细

python 装饰器

时间:2017-01-11 07:40:16      阅读:323      评论:0      收藏:0      [点我收藏+]

# _*_ coding:utf-8 _*_
‘‘‘
#装饰器decorator就是一个返回函数的高阶函数

def outer(fun):
    def wrapper():
        print(‘call %s:()‘ %fun.__name__)
        fun()
    return wrapper
#执行@outer相当于outer(Func1),调用Func1函数的时候变成了装饰器返回的函数wrapper()
#在eclipse使用Variables查看变量
@outer
def Func1():
    print(‘func1‘)

   

 

   
Func1()

‘‘‘
‘‘‘
#原函数加参数的情况;原函数有返回值的情况
def outer(fun):
    def wrapper(arg):
        print(‘call %s:()‘ %fun.__name__)
        result = fun(arg)
        return result
    return wrapper
@outer
def Func1(arg):
    print(‘func1‘,arg)
    return ‘return‘

‘‘‘
‘‘‘
Func1 =
    def wrapper(arg):
        print(‘call %s:()‘ %fun.__name__)
        result = fun(arg)
        return result
‘‘‘
‘‘‘
a = Func1(‘qlong‘)
print(a)

‘‘‘

‘‘‘
#装饰器有参数
def outer(text):
    def decorator(func):
        def wrapper():
            print(text,‘装饰器带参数‘)
            func()
        return wrapper
    return decorator


@outer(‘execute‘)
def Func1():
    print(‘func1‘)
   
Func1()

#注意wrapper()函数平行的语句就返回wrapper;decorator函数平行语句就返回
#decorator

‘‘‘

python 装饰器

原文:http://www.cnblogs.com/qlong/p/6271516.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!