萬能裝飾器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)



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