装饰器就是装饰函数的函数,为函数添加功能的容器
引入装饰器的原因主要是为了在不修改原有函数代码的情况下,增加额外功能
# 无参数装饰器模板
def wrapper(func):
	def inner(*args,**kwargs):
        res = func(*args,**kwargs)
        reunrn res
    retun inner
#  写一个程序运行,计算程序快慢
import time
def timer(func):
    def wrapper(*args,**kwargs):
        start_t = time.time()
        res = func(*args,**kwargs)
        end_t = time.time()
        pritn("这个程序运行时间:{}".format(end_t-start_t))
        return res
    return wrapper
def foo():
    print(1)
    time.sleep(2)
foo=timer(foo)
foo()
@timer   # bar = timer(bar)
def bar(a,b):
    print(a,b)
    return a,b
bar(1,3)
原文:https://www.cnblogs.com/wait59/p/13160360.html