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

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.总结

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

 

posted @ 2022-08-15 18:13    阅读(19)  评论(0编辑  收藏  举报