首页 > 其他 > 详细

装饰器进阶

时间:2018-08-25 23:50:41      阅读:137      评论:0      收藏:0      [点我收藏+]
from functools import wraps
def wrap1(f):
    @wraps(f)
    def inner1():
        print(inner1() before)
        f()
        print(inner1() after)

    return inner1


def wrap2(f):
    @wraps(f)
    def inner2():
        print(inner2() before)
        f()
        print(inner2() after)

    return inner2


@wrap1  # func = wrap1(inner2),把inner2传进来了
@wrap2  # func = wrap2(func) = inner2     先执行这个,因为离被装饰函数func()最近
def func():
    ‘‘‘
    这里是func
    ‘‘‘
    print(func())

func()
print(func.__name__)            # 返回函数名,如果没有wraps(f)装饰,返回的是inner1而不是func
print(func.__doc__)             # 返回函数的注释

 

装饰器进阶

原文:https://www.cnblogs.com/hhsh/p/9535807.html

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