python3如何獲取子線程中函數(shù)返回值
python3獲取子線程中函數(shù)返回值
先看如下例子
import threading def video(num): if num<10: signal=0 else: signal=1 return signal class judge_video(threading.Thread): """docstring for judge_video""" def __init__(self, arg): super(judge_video, self).__init__() self.arg = arg def run(self): self.result=video(self.arg) def get_result(self): return self.result if __name__=="__main__": num=int(input("輸入整數(shù):")) video_one=judge_video(num) video_one.setDaemon(True) #設(shè)置守護(hù)進(jìn)程,主線程結(jié)束時(shí),不管子線程有沒(méi)有結(jié)束都會(huì)退出進(jìn)程 video_one.start() video_one.join(5) #設(shè)置主線程等待子線程運(yùn)行5秒后繼續(xù)進(jìn)行主線程操作 print(video_one.get_result())
通過(guò)繼承threading模塊中的Thread類創(chuàng)建新類judge_video,重載thread的run()方法,線程通過(guò)start()方法創(chuàng)建后就會(huì)執(zhí)行run()方法,在run方法中調(diào)用函數(shù)video()并獲取返回值,新建函數(shù)get_result()用來(lái)在類外使用函數(shù)的返回值。
類judge_video實(shí)例化時(shí),參數(shù)num通過(guò)arg參數(shù)傳入。
Python3函數(shù)的返回值 return
返回值
作用:
為函數(shù)指定運(yùn)行的結(jié)果值 , 該值將返回到函數(shù)調(diào)用位置
注意事項(xiàng)
1.如果一個(gè)函數(shù)沒(méi)有設(shè)置返回值 ,使用變量接收時(shí)結(jié)果為None
2.同一個(gè)函數(shù)執(zhí)行過(guò)程中只能執(zhí)行一次return語(yǔ)句,執(zhí)行return語(yǔ)句后 ,return后面的內(nèi)容將不再執(zhí)行, 函數(shù)執(zhí)行完畢
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Python中os.path與pathlib的用法和性能對(duì)比
pathlib 模塊是在Python3.4版本中首次被引入到標(biāo)準(zhǔn)庫(kù)中的,這篇文章主要來(lái)和大家介紹一下Python中os.path與pathlib再用法和性能上的區(qū)別,感興趣的可以了解下2024-03-03在python中利用try..except來(lái)代替if..else的用法
今天小編就為大家分享一篇在python中利用try..except來(lái)代替if..else的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12python中合并兩個(gè)文本文件并按照姓名首字母排序的例子
這篇文章主要介紹了python中合并兩個(gè)文本文件并按照姓名首字母排序的例子,需要的朋友可以參考下2014-04-04