python day11

装饰器函数                                                                                                                            

# 装饰器形成过程

# 装饰器的作用

# 原则:开放封闭原则

# 装饰器的固定模式

 

装饰器的作用——#不想修改函数的调用方式 但是还想在原来的函数前后添加功能

#timmer就是一个装饰器函数,只是对一个函数 有一些装饰作用

 

#不想修改函数的调用方式 但是还想在原来的函数前后添加功能
#timmer就是一个装饰器函数,只是对一个函数 有一些装饰作用
def func():
time.sleep(0.01)
print("老板好同事好大家好!")
def timmer(f):      #装饰器函数
def inner():
start = time.time()
f()        #被装饰的函数
end = time.time()
print(end - start)
return inner
func = timmer(func)
func()

# 原则:开放封闭原则

#   开放 : 对扩展是开放的
#   封闭 : 对修改是封闭的

def timmer(f):      #装饰器函数
    def inner():
        start = time.time()
        f()        #被装饰的函数
        end = time.time()
        print(end - start)
    return inner
@timmer         #语法糖 @装饰器函数名
def func():
    time.sleep(0.01)
    print("老板好同事好大家好!")
func()

# 加上返回

 

 

加参数 

#装饰带参数函数的装饰器

多个参数

加上多个参数,包括关键字参数:

简化后的重要函数:

  

装饰器固定模式                                                                                                                                 

def wrapper(func):   #qqxing
    def inner(*args,**kwargs):
        ret = func(*args,**kwargs)   #被装饰的函数
        return ret
    return inner

@wrapper        #qqxing = wrapper(qqxing)
def qqxing():
    print(123)

ret = qqxing()   #inner

 

posted @ 2018-12-03 20:58  李然然  阅读(130)  评论(0编辑  收藏  举报