Python多层装饰器执行顺序
发布日期:2021-07-01 06:08:27
浏览次数:3
分类:技术文章
本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月30日 18时27分00秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
c++ map的键值
2019-05-08
简单的八数码问题(BFS)
2019-05-08
hdu 400题纪念
2019-05-08
归并排序模版(分治思想)
2019-05-08
uva 1149 Bin Packing 装箱 (二分+贪心)
2019-05-08
循环比赛日程表 (分治)
2019-05-08
博弈总结
2019-05-08
极值问题(dp)
2019-05-08
快速幂模版
2019-05-08
hdu 1015 Safecracker
2019-05-08