装饰器与线程 有没有关系呢?
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()
3.打印如下
开始运行...
进入装饰器
开始处理装饰操作
执行fun
我是线程方法
4.总结
傻了吧
先执行装饰器,在执行函数
函数里是从上到下执行的,
跟你线程有半毛钱关系吗
-----------------------------------------------------------------------------------------------------------------------------------------