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é)束時,不管子線程有沒有結(jié)束都會退出進(jìn)程
video_one.start()
video_one.join(5) #設(shè)置主線程等待子線程運行5秒后繼續(xù)進(jìn)行主線程操作
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

