python基础 day11

#装饰器形成的过程
#装饰器的作用
#原则:开放封闭原则
#装饰器的固定模式
#装饰器的本质:闭包函数
# import time
# time.time() #1970年后到现在过了多少秒
# time.sleep() #停留多少秒

# def func():
# time.sleep(0.01)
# print('老板同事大家好!')
# def timer(f): #装饰器函数
# def inner():
# start=time.time()
# f() #被装饰的函数
# end=time.time()
# print(start-end)
# print(inner.__closure__)
# return inner
# func=timer(func)
# func()

#不想修改函数的调用方式,但是还想在原来的函数前后添加功能
#timer就是一个装饰器函数,只是对一个函数有一些装饰作用

#装饰器的固定格式
# def wrapper(func): #func被装饰的函数
# def inner(*args,**kwargs): #inner接收被装饰函数的参数
# ret=func(*args,**kwargs) #ret接收被装饰函数的返回值
# return ret #返回被装饰函数的返回值
# return inner #返回内部函数名
def wrapper(func):
    def inner(*args,**kwargs):
        print('在被装饰的函数执行之前做的事')
        ret=func(*args,**kwargs)
        print('在被装饰的函数执行之做的事')
        return ret
    return inner
@wrapper
def holiday(day):
    print('全体放假%s天'%day)
    return '好开心'
ret=holiday(3)
print(ret)
装饰器

 





posted @ 2019-04-01 13:00  遗忘天际  阅读(136)  评论(0编辑  收藏  举报