簡體   English   中英

Python 函數的多個返回值?

[英]Multiple return values from a Python function?

我有一個不斷輪詢 python 函數的前端。 在最簡單的形式中,python 函數如下所示:

def some_func():
    new_list = []
    sleep(3)
    new_list.append(1)
    sleep(3)
    new_list.append(2)
    sleep(3)
    new_list.append(3)

    return new_list

與我一起從前端結果輪詢此功能始終得到以下列表:

[1, 2, 3]

我很好奇的是,是否有一種方法可以在修改列表時返回列表? 所以每 100 毫秒,前端將輪詢后端,並獲取最新的列表。 這應該導致以下返回值:

[1]
[1, 2]
[1, 2, 3]

這可以通過線程、隊列等來實現嗎?

該列表需要錨定在此例程之外的上下文中。 從父程序傳入空列表。 該父級還會生成“偵聽器”(設計模式)或其他監視器例程——並且相同的對象引用將傳遞給偵聽器。

這應該給你一個起點。 查找協程之間的數據共享,並查看您在共享中需要哪些特定特征。 如果您只有一個更改數據的例程(寫入器),但有一個或多個檢查內容(讀取器),那么您就有了一個記錄良好的通用解決方案。

我強烈建議您使用讀/寫方法編寫一個類來“擁有”數據。 在您的頂層設計中創建一個實例,並將該實例傳遞給將處理它的函數。

這個問題中鏈接的讀者/作者解決方案開始。

暫無
暫無

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

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