簡體   English   中英

python線程中的返回值

[英]Return value in a python thread

我是 Python 新手,我想從線程中獲取值。 我在線程中調用函數 logica 並且該函數返回一個值,我想知道如何獲取值歌曲,因為稍后我將在迭代中使用它。 命令是一個字符串。 我正在使用庫線程

def logica_thread ( comand):
        threading.Thread(target= logica ,args = (comand,), daemon = True).start()       
 
def logica(comando):
    request = requests.get('http://127.0.0.1:5000/' + comand)
    time.sleep(5) 
    songs = request.json()['data']
    return songs

在您的設置中這有點困難,因為您沒有參考線程。 所以

  1. 啟動后線程什么時候准備好?
  2. 結果返回到哪里?

1 可以通過將線程分配給變量來修復。 2 在您的情況下,您可以為結果提供一個外部列表並將其作為參數傳遞。

import threading
import time


def test_thread(list):

    for i in range(10):
        list.append(str(i))


my_list = []

my_thread = threading.Thread(target=test_thread, args=[my_list])
my_thread.start()

while my_thread.is_alive():
    time.sleep(0.1)

print(my_list)

結果

['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM