有什麼辦法可以調用一次函數,然後在不同時間返回數據多次?Python:如何在函數調用期間多次返回數據
例如,假設我有以下代碼:
def do_something():
for i in range(1, 10):
return 1
不過,我希望能夠從一個函數調用返回多個數據塊,但在異步時間,這是可能的?
對於情況下,我有一個生成word文檔,將它們轉換成PDF文件的程序,然後將它們組合成一個單一的PDF文檔。我希望能夠通過GUI調用外部函數來創建文檔,然後顯示一個進度條,通過該函數顯示當前進度。
編輯:
我已經知道了yield
功能。我認爲問題底部的具體問題會有所幫助。爲了更清楚,我正在尋找的是從函數返回多個值併爲返回的每個值導致不同的事件的方法。雖然它可能是一個壞榜樣,我要的是能夠做的是類似於JavaScript中的.then(){}
東西,但能夠使用多個返回值
是的,有一些是正是:'yield' http://stackoverflow.com/questions/231767/what-does-the-yield-keyword-do – Iluvatar
沒有'yield'你必須調用一次又一次。他希望它被稱爲單一時間。 – harshil9968
@ harshil9968發電機需要調用一次。您存儲迭代器,然後再次調用**迭代器**。這是for循環語義所做的。重複調用該函數會導致迭代器失去狀態並從頭開始。 – bashrc