Python多层装饰器执行顺序
发布日期:2021-07-01 06:08:27
浏览次数:2
分类:技术文章
本文共 941 字,大约阅读时间需要 3 分钟。
一层装饰器
# -*- coding: utf-8 -*-def func1(func): print("func1-1") def inner1(): print("inner1-1") func() print("inner1-2") print("func1-2") return inner1@func1def func(): print("func")# 第一步改变函数指向# 相当于 func1(func) -> inner1# func1-1# func1-2# 脚本执行的时候就动态添加了func 的指向,现在func指向inner1# 第二步,执行函数,相当于执行内部函数# func()# 相当于 func1(func)() -> inner1()# func1-1# func1-2# inner1-1# func# inner1-2
两层装饰器
def func2(func): print("func2-1") def inner2(): print("inner2-1") func() print("inner2-2") print("func2-2") return inner2@func2@func1def func(): print("func")# 相当于# func2(func1(func)) -> func2(inner1) -> inner1 + inner2# func1-1# func1-2 -> inner1# func2-1# func2-2 -> inner2# 第一步,按照叠放顺序下到上逐层添加func()# 相当于# func2(func1(func))()# func1-1# func1-2 ->inner1# func2-1# func2-2 ->inner2# inner2-1# inner1-1 ->inner2# func# inner1-2# inner2-2 ->inner1# 第二步执行的时候从内向外,逐层执行
转载地址:https://pengshiyu.blog.csdn.net/article/details/103440691 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月27日 07时23分41秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
这个GItHub上的Java项目开源了 2021最全的Java架构面试复习指南
2019-05-02
Proftpd MySQL [Step by Step]
2019-05-02
HP-UX oracle RAC 双机实践
2019-05-02
解决SHELL脚本中的export无法生效的问题【转】
2019-05-02
linux中的sh脚本语法【转】
2019-05-02
区别数据结构中的堆栈与内存中的堆栈的个人总结【转】
2019-05-02
c++中冒号(:)和双冒号(::)的用法【转】
2019-05-02
Android深入浅出之Binder机制
2019-05-02
linux查看硬件信息
2019-05-02
linux支持大于4G内存
2019-05-02
WM_GETINFO相关
2019-05-02
[收藏] FC交换机基础知识详解
2019-05-02
Linux调试工具
2019-05-02
用Eclipse和GDB构建ARM交叉编译和在线调试环境
2019-05-02
GDB命令大全
2019-05-02
IT行业培训必读:优秀程序员的十个习惯
2019-05-02
财务分析与决策:同型分析
2019-05-02