python实现装饰器、描述符-创新互联
概要
本人python理论知识远达不到传授级别,写文章主要目的是自我总结,并不能照顾所有人,请见谅,文章结尾贴有相关链接可以作为补充
全文分为三个部分装饰器理论知识、装饰器应用、装饰器延申
- 装饰理基础:无参装饰器、有参装饰器、functiontools、装饰器链
- 装饰器进阶:property、staticmethod、classmethod源码分析(python代码实现)
装饰器基础
无参装饰器
''' 假定有一个需求是:打印程序函数运行顺序 此案例打印的结果为: foo1 function is starting foo2 function is starting ''' from functools import wraps def NoParamDec(func): #函数在被装饰器装时后,其函数属性也会改变,wraps作用就是保证被装饰函数属性不变 @wraps(func) def warpper(*args, **kwargs): print('{} function is starting'.format(func.__name__)) return func(*args, **kwargs) return warpper #python黑魔法省略了NoParamDec=NoParamDec(foo1) @NoParamDec def foo1(): foo2() @NoParamDec def foo2(): pass if __name__ == "__main__": foo1()
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
标题名称:python实现装饰器、描述符-创新互联
本文URL:http://hbruida.cn/article/cshidi.html