Python修饰器,终极解释来了!

liftword15小时前技术文章5

修饰器在本质上就是一个函数,可接收其他函数作为参数。

接下来,让我们看看如何自定义一个修饰器

#这个修饰器可在被修饰函数之前被执行
def xiushi1(func):
    print("定义修饰器时立即执行该语句(先定义的)")
    def wrapper(*args, **kwargs):
        print("before function called!(xiushi1)")
        result = func(*args, **kwargs)
        print("after function called!(xiushi1)")
        return result
    print("我是 先 被定义的修饰器中的函数")
    return wrapper
#这个修饰器可在被修饰函数之后被执行
def xiushi2(func):
    print("定义修饰器时立即执行该语句(后定义的)")
    def wrapper(*args, **kwargs):
        print("before function called!(xiushi2)")
        result = func(*args, **kwargs)
        print("after function called!(xiushi2)")
        return result
    print("我是 后 被定义的修饰器中的函数")
    return wrapper

再定义一个test()函数,使用上面的修饰器来对test()函数进行修饰

@xiushi2
@xiushi1
def test():
    print(3)
#调用已修饰的函数
test()

代码执行结果如下:


写到最后的一句话:

有什么疑问,关注我获取更多干货内容!

相关文章

干货 | 一文讲清楚Python之装饰器

概念介绍装饰器(decorator),又称“装饰函数”,即一种返回值也是函数的函数,可以称之为“函数的函数”。其目的是在不对现有函数进行修改的情况下,实现额外的功能。最基本的理念来自于一种被称为“装饰...

Python 装饰器:如何改进代码的功能和可读性

什么是装饰器?用装饰器来扩展另一个函数的功能。通过使用装饰器,可以添加其他功能。为了定义装饰器,需要定义一个函数,该函数具有一个调用 wrapper 的函数和一个调用 func, 的参数,该参数是我们...

Python的装饰器还是不会?来看看这篇文章(建议收藏)

点赞、收藏、加关注,下次找我不迷路哈喽,各位 Python 爱好者们!今天咱们要一起来攻克 Python 里一个超实用却又让不少新手犯迷糊的知识点 —— 装饰器。别担心,全程用大白话,搭配例子,还有...

python装饰器详解

装饰器储备知识1:*args和**kwargs储备知识2:名称空间与作用域储备知识3:函数对象储备知识4:函数的嵌套定义储备知识 5:闭包函数喜欢编程的小伙伴可以加小编的Q群1026782549,进群...

Python中自带的三个装饰器

说到装饰器,就不得不说python自带的三个装饰器:1、@property 将某函数,做为属性使用@property 修饰,就是将方法,变成一个属性来使用。2、@classmethod 修饰类的方式带...