https://www.cnblogs.com/serpent/p/9445592.html
讲的巨好。感觉任何我想达到的目的通过他的代码都可以实现!!!
https://www.cnblogs.com/skaarl/p/9406910.html
这个是讲@functools.wraps()的作用,主要是让__name__为原函数名,不被装饰器名替代。
https://blog.csdn.net/weixin_44800452/article/details/89785730
一个名为mag_cache的装饰器,缓存的应用场景,是有数据需要频繁查询,且每次查询都需要大量计算或者等待时间之后才能返回结果的情况,使缓存来提高查询速度,用内存空间换取查询、加载的时间。
https://www.cnblogs.com/3me-linux/p/6761635.html
讲了闭包、作用域、装饰器的关系,浅显易懂,但因为是python2,可能前面几条与python3有些出入。