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

yipeiwu_com6年前Python基础

前言

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

原代码


执行结果


装饰顺序 : 就近原则

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

执行顺序 : 就远原则

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

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

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

总结

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

相关文章

python自动发邮件总结及实例说明【推荐】

python自动发邮件总结及实例说明【推荐】

python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用。smtplib模块主要负责发送邮件,email模块主要负责构...

Python入门教程3. 列表基本操作【定义、运算、常用函数】 原创

前面简单介绍了Python字符串基本操作,这里再来简单讲述一下Python列表相关操作 1. 基本定义与判断 >>> dir(list) #查看列表list相关的属...

python基础while循环及if判断的实例讲解

wlile循环 while True表示永远为真,不管是什么条件都会向下执行,下面是写的一个例子。 #!/usr/bin/env python age = 24           ...

Python编程实现从字典中提取子集的方法分析

本文实例讲述了Python编程实现从字典中提取子集的方法。分享给大家供大家参考,具体如下: 首先我们会想到使用字典推导式(dictionary comprehension)来解决这个问题...

Django使用详解:ORM 的反向查找(related_name)

先定义两个模型,一个是A,一个是B,是一对多的类型。 class A(models.Model): name= models.CharField('名称', max_length...