1、定义
python装饰器是一个函数,一般情况:输入函数,输出参数
2、作用
对函数统一增加功能,在函数实现基础功能的基础上进行装饰
3、python装饰器和被装饰函数的关系:调用被装饰的函数,等价于调用装饰器返回的函数
import time
def timeit(f):
def wrapper(x):
start=time.time()
ret=f(x)
print(time.time()-start)
return ret
return wrapper
@timeit
def myfunc(x):
time.sleep(x)
mufunc=timeit(myfunc)
在我看到的一个项目中,看到了装饰器一个很高级的用法,大致思路如下:
1、定义models文件夹,里面存储不同的model
2、在该文件下的__init__.py里面import该文件夹下的所有模型
3、在该文件夹下的models.py文件下写一个装饰器,用来实现根据模型名称调用不同模型
项目代码