标签:好处 任务 部分 java 常用 没有 print 流程 功能
接触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()的简写。
使用装饰器的好处是可以在被装饰函数已经写完的情况下直接使用@符号进行修饰,可以达到不用改变原有代码的前提下增加新的功能。
标签:好处 任务 部分 java 常用 没有 print 流程 功能
原文地址:http://www.cnblogs.com/fight-xiao/p/7643542.html