美文网首页大数据 爬虫Python AI SqlPython之佳
什么是Python装饰器?看小编手把手教学

什么是Python装饰器?看小编手把手教学

作者: 山禾家的猫 | 来源:发表于2018-12-25 16:38 被阅读0次

    讲 Python 装饰器前,我想先举个例子,虽有点污,但跟装饰器这个话题很贴切。

    学习Python中有不明白推荐加入交流裙

                    号:735934841

                    群里有志同道合的小伙伴,互帮互助,

                    群里有免费的视频学习教程和PDF!

    谈装饰器前,还要先要明白一件事,Python 中的函数和 Java、C++不太一样,Python 中的函数可以像普通变量一样当做参数传递给另外一个函数,例如:

    先来看一个简单例子,虽然实际代码可能比这复杂很多:

    现在有一个新的需求,希望可以记录下函数的执行日志,于是在代码中添加日志代码:

    简单装饰器

    *args、**kwargs

    可能有人问,如果我的业务逻辑函数 foo 需要参数怎么办?比如:

    我们可以在定义 wrapper 函数的时候指定参数:

    比如:

    这时,你就可以把 wrapper 函数指定关键字函数:

    带参数的装饰器

    @use_logging(level="warn")等价于@decorator

    类装饰器

    functools.wraps

    例子:

    装饰器顺序

    一个函数还可以同时定义多个装饰器,比如:

    相关文章

      网友评论

        本文标题:什么是Python装饰器?看小编手把手教学

        本文链接:https://www.haomeiwen.com/subject/nawflqtx.html