#装饰器形成的过程
# 装饰器的作用
# 原则:开放封闭原则
# 装饰器的固定模式
# 懂技术的公司
# bug
# 不懂技术
import time
# time.time()
# time.sleep()
# def func():
# print("老板好同事好大家好")
# func()
import time
# time.sleep(5)#让程序在这个地方睡五秒
# print("hah")
# print(time.time())1970年以后的每一秒
# def func():
# start = time.time()
# print("you want to buy")
# time.sleep(0.01)
# end = time.time()
# print("{}".format(end-start))
#
# func()
# import time
#
# def func():
# print("you are my girl, i love you ")
#
#
# def timer(f):
# start = time.time()
# f()
# end = time.time()
# print("{}".format(end-start))
#
# timer(func)
# 形成闭包
import time
def func():
print("123")
return 234
def timer(f): #装饰器函数
def inner():
start = time.time()
ret = f() #被装饰函数
end = time.time()
print("{}".format(end - start))
return ret
return inner
func = timer(func)
ret = func()
print(ret)
#再不改函数的调用方式,但是还是在原来的函数的前后添加功能
# timer就是一个装饰器函数,只是对一个函数,有一些装饰作用
# 原则:开放封闭原则
# 开放:对扩展是开放的
# 封闭:对修改是封闭的
# 装饰器函数
#被装饰器函数
# 装饰器函数
def wrapper(func):
def inner(*args, **kwargs):
ret = func(*args, **kwargs)
return ret
return inner
@wrapper #qqxing = wrapper(qqxing)
def qqxing():
print(123)
ret = qqxing() #inner