python中多个装饰器的调用顺序详解

yipeiwu_com6年前Python基础

前言

一般情况下,在函数中可以使用一个装饰器,但是有时也会有两个或两个以上的装饰器。多个装饰器装饰的顺序是从里到外(就近原则),而调用的顺序是从外到里(就远原则)。

原代码


执行结果


装饰顺序 : 就近原则

被装饰的函数,组装装饰器时,是从下往上装饰

执行顺序 : 就远原则

装饰器调用时是从上往下调用

为了更好的理解,找到这段话:

被装饰的函数是一个妹子,装饰器是衣服。“办事情”的时候得依次把外套、衬衣、内衣脱掉,事情办完了还要依次把内衣、衬衣、外套穿上。距离“妹子”越近的装饰器代表越贴身的衣服。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对【听图阁-专注于Python设计】的支持。

相关文章

老生常谈python之鸭子类和多态

一、 什么是多态 <1>一种类型具有多种类型的能力 <2>允许不同的对象对同一消息做出灵活的反应 <3>以一种通用的方式对待个使用的对象 <4&...

Python根据已知邻接矩阵绘制无向图操作示例

Python根据已知邻接矩阵绘制无向图操作示例

本文实例讲述了Python根据已知邻接矩阵绘制无向图操作。分享给大家供大家参考,具体如下: 有六个点:[0,1,2,3,4,5,6],六个点之间的邻接矩阵如表格所示,根据邻接矩阵绘制出相...

Python中实现结构相似的函数调用方法

python的dict用起来很方便,可以自定义key值,并通过下标访问,示例如下: 复制代码 代码如下: >>> d = {'key1':'value1', ... '...

python 定时修改数据库的示例代码

当需要定时修改数据库时,一般我们都选择起一个定时进程去改库。如果将这种定时任务写入业务中,写成一个接口呢,定时进程显得有些不太合适?如果需要定时修改100次数据库,常规做法会启动100个...

使用python中的in ,not in来检查元素是不是在列表中的方法

使用python中的in ,not in来检查元素是不是在列表中的方法

如果在列表中返回True ,否则返回False 以上这篇使用python中的in ,not in来检查元素是不是在列表中的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希...