首页 > 其他分享 >多个装饰器修改一个函数

多个装饰器修改一个函数

时间:2024-09-05 10:47:58浏览次数:5  
标签:函数 show -- 修改 inner print outter 装饰 def

def outter_1(func1):
    def inner_1(*args, **kwargs):  # 使用不定长参数
        print("inner_1内容")
        func1(*args, **kwargs)
        print("第一个装饰器-----1")
 
    return inner_1
 
 
def outter_2(func2):
    def inner_2(*args, **kwargs):  # 使用不定长参数
        print("inner_2内容")
        func2(*args, **kwargs)
        print("第二个装饰器-----2")
 
    return inner_2
 
 
def outter_3(func3):
    def inner_3(*args, **kwargs):  # 使用不定长参数
        print("inner_3内容")
        func3(*args, **kwargs)
        print("第三个装饰器-----3")
 
    return inner_3
 
 
@outter_1
@outter_2
@outter_3
def show_1():
    print("show_1")
 
 
show_1()
"""
    多个装饰器加载的顺序
    1.@outter_3:show_1原函数-->outter_3-->func3 = show_1原函数-->show_1指向了inner_3
    2.@outter_2:inner_3-->outter_2-->func2 = inner_3-->show_1指向了inner_2
    3.@outter_1: inner_2-->outter_1-->func1 = inner_2-->show_1最终指向了inner_1
    所以多个装饰器的执行调用过程
    show_1()-->inner_1()-->func1()-->inner_2()-->func2()-->inner_3()-->func3()-->show_1()原
"""

  

结论:从上往下执行

标签:函数,show,--,修改,inner,print,outter,装饰,def
From: https://www.cnblogs.com/boye169/p/18397940

相关文章

  • SQL Server 自定义函数返回格式化DateTime
    CreateFUNCTION[dbo].[FormatDateTime](@dateasdatetime,---传入时间@dformatasvarchar(10)---传入要生成的格式代码)RETURNSvarchar(100)ASBEGIN declare@datestringasvarchar(100) if@dformat='f1' begin set@datestring=(SELECTFORMAT(@date,'......
  • 13 Python面向对象编程:装饰器
    本篇是Python系列教程第13篇,更多内容敬请访问我的Python合集Python装饰器是一种强大的工具,用于修改或增强函数或方法的行为,而无需更改其源代码。装饰器本质上是一个接收函数作为参数的函数,并返回一个新的函数。装饰器的用途包括日志记录、性能测试、事务处理、缓......
  • Hive时间窗口函数保姆级教程(最全解析、应用和优化)(持续更新)
    目录第一章Hive时间窗口函数基础1.1时间窗口函数定义1.2Hive支持的时间窗口函数1.2.1ROW_NUMBER()1.2.2RANK()1.2.3DENSE_RANK()1.2.4LEAD()和LAG()1.2.5FIRST_VALUE()和LAST_VALUE()1.3时间窗口函数语法与参数1.3.1PARTITIONBY子句1.3.2ORDERBY......
  • 13 Python面向对象编程:装饰器
    本篇是Python系列教程第13篇,更多内容敬请访问我的Python合集Python装饰器是一种强大的工具,用于修改或增强函数或方法的行为,而无需更改其源代码。装饰器本质上是一个接收函数作为参数的函数,并返回一个新的函数。装饰器的用途包括日志记录、性能测试、事务处理、缓存、权......
  • MySQL零基础入门教程-5 单行处理函数、分组函数、mysql关键字执行顺序,基础+实战
     教程来源:B站视频BV1Vy4y1z7EX001-数据库概述_哔哩哔哩_bilibili我听课整理的课程的完整笔记,供大家学习交流下载:夸克网盘分享本文内容为完整笔记的第五篇17、单行数据处理函数P30-36&分组函数17.1、数据处理函数又被称为单行处理函数单行处理函数的特点:一个输入对应一个......
  • 《C++中的移动构造函数与移动赋值运算符:高效编程的利器》
    一、引言在C++编程中,随着现代软件对性能要求的不断提高,高效地管理资源变得至关重要。C++11引入了移动语义,其中移动构造函数和移动赋值运算符成为了提高程序性能和资源管理效率的重要工具。本文将深入探讨C++中的移动构造函数和移动赋值运算符的作用,以及它们在实际编程中......
  • 修改iphone图片格式(heic转换格式)
    大家都知道,自从iOS11开始,iPhone图片默认格式是heic格式,虽然它体积更小,画质也更高一些,但是仍然有使用不方便的地方,比如有些网站、平台不支持上传.heic,发送给朋友,朋友无法直接查看图片等情况,那么我们该如何修改iPhone默认的图片格式呢?今天分享设置方法:打开iPhone中的【设置】功......
  • SAP HCM 如何追踪Z表的日志修改记录
    导读INTRODUCTION日志记录:这几天遇到一个问题,就是查谁修改Z表的数据,因为HCM系统大部分都是信息类型,信息类型修改是有专门一套的处理机制,那么Z开头的表是不是也有追踪的一套机制。今天我们分析下如何开启Z表追踪修改记录。作者:vivi,来源:osinnovation。一、系统是否有追踪日志......
  • MySQL常用窗口函数总和
    在MySQL中,窗口函数是一类用于在查询结果集中计算值的函数,允许用户根据数据行进行聚合或排序操作,同时保留行的详细信息。窗口函数在分析数据时非常有用,因为它们允许您在不缩小结果集的情况下对数据进行复杂的计算。常见的窗口函数包括:ROW_NUMBER()RANK()DENSE_RANK()NTILE(......
  • JAVA基础之四-函数式接口和流的简介
    自从J8开始,对于开发JAVAEE应用的工程师而言,函数式接口会常常接触,某种程度上有点不可绕过。这是因为在绝大部分企业中都会使用Spring来开发JAVAEE,而Spring在它的实现中越来越多地使用上函数式编程。如果我们阅读它的源码,函数式编程是绕不过去的。 函数式编程有其好处,这个好处......