python装饰器初解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python装饰器初解相关的知识,希望对你有一定的参考价值。
接触python也有大半年的时间了,也进行了不少python相关的开发工作,但是对python的理解仍然是不够深入的,目前的知识点还仅仅局限在常用的基础知识上,对于比较深入的内容都没有认真研究学习过,最近有个任务需要在原本的开发流程中加入日志功能,掌握装饰器技术对完成这次任务是很有帮助的。
因为在接触python之前主要是在学习前端的知识的,对于javascript的知识了解的比较多,经过之前对装饰器知识的查找学习后,知道python中的装饰器跟javascript中的闭包有异曲同工之妙,都是在一个函数里面包含另一个函数,但是这两部分的使用上还是有很大的区别的。
装饰器的基本语法格式为:
def deco(): def wrapper(): print ‘aa‘ return wrapper @deco def myfunc(): print ‘bb‘ myfunc()
在上述代码中,对于装饰器的使用直接使用了它的语法糖形式@,这样写的好处是显而易见的,在后面调用的时候不用再重复写函数名称,而只是用@代替。在python中的一个公共认知是一切皆对象,因此函数也是对象。这里的@符号可以理解为myfunc=deco(myfunc);myfunc()的简写。
使用装饰器的好处是可以在被装饰函数已经写完的情况下直接使用@符号进行修饰,可以达到不用改变原有代码的前提下增加新的功能。
以上是关于python装饰器初解的主要内容,如果未能解决你的问题,请参考以下文章