0
点赞
收藏
分享

微信扫一扫

装饰器与线程 有没有关系呢?

魔都魅影梅杜萨 2022-08-20 阅读 63

1.我为什么会写这篇文章呢? 

起源:咱们做python的,公司有java的哥们,需要对接,然后他非说我有两个返回不一样,一个是及时响应,一个是异步回调javaAPI,
解决;我去找代码逻辑,我看了一遍又一遍,问题就在这装饰器上还比较复杂,我一想会不会是函数里面开线程导致 装饰器会装饰函数 又会装饰线程呢?
最后:是java有两个方法,请求python两次,所以结果不一样
备注:不要误导,线程跟装饰器没关系

2.代码如下

# 测试装饰器    方法里面写线程
from threading import Thread

def t_fun():
print(f"我是线程方法")

def pre_fun(fun):
print(f"进入装饰器")
def wrapper(*args, **kwargs):
print(f"开始处理装饰操作")
fun(*args, **kwargs)

return wrapper

@pre_fun
def fun():
a = 1
print(f"执行fun")

t = Thread(target=t_fun,args=())
t.start()


fun()

View Code

3.打印如下

开始运行...
进入装饰器
开始处理装饰操作
执行fun
我是线程方法

4.总结

傻了吧
先执行装饰器,在执行函数
函数里是从上到下执行的,
跟你线程有半毛钱关系吗

 

-----------------------------------------------------------------------------------------------------------------------------------------



举报

相关推荐

0 条评论