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è)置守護進程,主線程結(jié)束時,不管子線程有沒有結(jié)束都會退出進程 video_one.start() video_one.join(5) #設(shè)置主線程等待子線程運行5秒后繼續(xù)進行主線程操作 print(video_one.get_result())
通過繼承threading模塊中的Thread類創(chuàng)建新類judge_video,重載thread的run()方法,線程通過start()方法創(chuàng)建后就會執(zhí)行run()方法,在run方法中調(diào)用函數(shù)video()并獲取返回值,新建函數(shù)get_result()用來在類外使用函數(shù)的返回值。
類judge_video實例化時,參數(shù)num通過arg參數(shù)傳入。
Python3函數(shù)的返回值 return
返回值
作用:
為函數(shù)指定運行的結(jié)果值 , 該值將返回到函數(shù)調(diào)用位置
注意事項
1.如果一個函數(shù)沒有設(shè)置返回值 ,使用變量接收時結(jié)果為None
2.同一個函數(shù)執(zhí)行過程中只能執(zhí)行一次return語句,執(zhí)行return語句后 ,return后面的內(nèi)容將不再執(zhí)行, 函數(shù)執(zhí)行完畢
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Python中os.path與pathlib的用法和性能對比
pathlib 模塊是在Python3.4版本中首次被引入到標(biāo)準(zhǔn)庫中的,這篇文章主要來和大家介紹一下Python中os.path與pathlib再用法和性能上的區(qū)別,感興趣的可以了解下2024-03-03在python中利用try..except來代替if..else的用法
今天小編就為大家分享一篇在python中利用try..except來代替if..else的用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12