黑马程序员技术交流社区

标题: python 自定义多线程类获取函数的返回值 [打印本页]

作者: 小江哥    时间: 2019-6-13 14:55
标题: python 自定义多线程类获取函数的返回值
[Python] 纯文本查看 复制代码

import threading

class ResThread(threading.Thread):
    '''重写线程类'''
    def __init__(self, func, *args, **kwargs):
        super().__init__()  # 调用父类初始化方法
        self.func = func
        self.args = args
        self.kwargs = kwargs
        self.result = None

    def run(self):
        '''重写run方法, 用变量接收函数返回值'''
        self.result = self.func(*self.args, **self.kwargs)

    def getResult(self):
        '''增加获取结果函数, 待程序执行完毕之后才可获取'''
        if self.result:
            return self.result
        else:
            raise Exception("The current thread is not executed")

def fn():
    return "我是返回值!"

t1 = ResThread(fn)  # 创建自定义线程对象
t1.start()  # 启动线程任务
t1.join()  # 等待线程执行完毕
print(t1.getResult())  # 获取并打印返回值


实现之前觉着可能还蛮复杂的, 实现之后也不过如此, 望能帮到诸位.

end~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2