码迷,mamicode.com
首页 > 其他好文 > 详细

装饰器进阶

时间:2018-08-26 00:03:32      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:def   doc   函数   inner   color   func   执行   tools   port   

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__)             # 返回函数的注释

 

装饰器进阶

标签:def   doc   函数   inner   color   func   执行   tools   port   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!