我想阻止我的for循環中的失速。Python:你如何在循環中設置一個定時器?
import datetime as dt
shopping_list = ['eggs','milk','bread']
def buy_item(item):
connect_to_website()
send_order_instruction(item)
disconnect()
for i in range(0,len(shopping_list)):
item = shopping_list[i]
time_elapsed = 0
start_time = dt.datetime.now()
while time_elapsed < 60:
buy_item(item)
check_time = dt.datetime.now()
time_elapsed = check_time - start_time
buy_item()登錄到網站並通過購買程序。但有時它會因爲互聯網連接,未找到項目,暫時停止網站暫時分秒或其他原因而卡住某個項目。功能簡單地拖延。我試過使用一個while循環,但沒有奏效。如果超過1分鐘,該如何跳過一個項目?是否有可能讓循環跳過某個特定商品的buy_item?在這種情況下會嘗試一下嗎?只是大聲思考。感謝您的幫助。對此,我真的非常感激。
您正在尋找異步編程。在理想的情況下,你的'buy_item'方法應該接受一個超時參數和/或引發你可以捕獲的適當的錯誤(ItemNotFound,ConnectionError)。也許你想向我們展示你的'buy_item'代碼? –
特別是,看看[Python裝飾器庫](https://wiki.python.org/moin/PythonDecoratorLibrary),其中包含用於函數重試,超時等的裝飾器。這可能是一件好事初始點。 – hbristow