函数进阶_装饰器

#装饰器形成的过程
# 装饰器的作用
# 原则:开放封闭原则
# 装饰器的固定模式

# 懂技术的公司
# 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

猜你喜欢

转载自www.cnblogs.com/jly1/p/9592401.html