首页 > 编程语言 > 详细

python中装饰器的执行顺序

时间:2020-05-25 23:00:34      阅读:51      评论:0      收藏:0      [点我收藏+]
import time

def outter(func):
print(1)
def wrapper(*args, **kwargs):
print(2)
start = time.time()
time.sleep(3)
func(*args, **kwargs)
stop = time.time()
print(stop - start)
print(3)
return wrapper


@outter
def index(x, y):
print(4)
print(‘index->%s %s‘ % (x, y))


# 执行顺序为:python解释器启动执行装饰器@outter这一行
# 当碰到@函数名时,会调用@后面的函数并且把下面的函数作为参数穿进去
# 如:outter(index),并执行这个函数,会返回wrapper,就是wrapper的内存地址
# 所有函数index就变成了wrapper(wrapper伪装成了index),下面是正式调用index
# 因为index已经变成了wrapper,所以会直接调用wrapper
# 并且执行完会返回到函数调用处,接着往下执行



index(1, 2)

python中装饰器的执行顺序

原文:https://www.cnblogs.com/kingchen/p/12961299.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!