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装饰器初解的主要内容,如果未能解决你的问题,请参考以下文章

Python面向对象学习之八,装饰器

[TimLinux] Python 装饰器

python装饰器

python装饰器关键代码

Python装饰器

python之装饰器