万能装饰器wraps

from functools 
def wrapper(func):  #func = holiday
    @functools .wraps(func)#增加这个之后下面调用展示的holiday.__name__为holiday,否则为inner
    def inner(*args,**kwargs):
        print('在被装饰的函数执行之前做的事情')
        ret = func(*args,**kwargs)
        print('在被装饰的函数执行之后做的事情')
        return ret
    return inner

@wrapper   #holiday = wrapper(holiday)
def holiday(day):
    '''这是一个放假通知'''
    print('全体放假%s天'%day)
    return '好开心'

print(holiday.__name__)
ret = holiday(3)   #inner
print(ret)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章