装饰器简介以及多个装饰器执行顺序

本文介绍了Python装饰器的基本概念,强调装饰器本质上是函数,并通过示例阐述了装饰器如何工作,特别是当一个函数被多个装饰器装饰时的执行顺序。文章通过详细分析代码,解释了装饰器函数在被装饰函数定义后立即自下而上执行,而在调用时则自上而下执行的原则。
摘要由CSDN通过智能技术生成

装饰器简介以及多个装饰器执行顺序


装饰器是Python用于封装函数或类的代码工具,是Python函数的高级特性之一。其主要功能是使某个函数在不需要做任何变动的前提下增加额外功能,即对某个函数进行功能”装饰“;主要作用是可以提高代码的可读性、简洁性以及扩展性,常用于后期功能升级;具体做法是将一些特定或者通用的方法写成装饰器,在待装饰函数定义前加上@+装饰器名称。

在自己编写装饰器之前,应注意以下几点:

  1. 装饰器本质是一个函数,可称之为函数装饰器;
  2. 装饰器也是一个闭包,即在非全局范围内定义的函数可以引用其外围空间中的变量;
  3. 装饰器以一个函数作为参数,并且返回值也是一个函数;
  4. 装饰器不能修改被装饰的函数代码;不能修改被装饰函数的调用方式;常见装饰器示例如下(给一个函数增加计时器功能):
    在这里插入图片描述
    执行结果如下所示:
    在这里插入图片描述
    当一个函数需要增加多个功能时,此时需给原函数注入多个装饰器。此处的重难点在于多个装饰器的函数调用顺序。以下将围绕下面这个例子展开介绍:
    在这里插入图片描述
    上面代码首先定义了两个函数(装饰器): decotator_one, decotator_two, 这两个函数实现的功能是:接收函数func作为参数然后返回创建的另一个函数inner_one或inner_two,在这两个创建的函数中分别调用被装饰函数func。紧接着定义了函数 f ,并采用上面定义的 decotator_one, decotator_two 作为装饰函数,最后再以1作为参数调用装
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值