日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python如何判断一段代码运行是否超出一定时间,如果超出则抛出异常?(检测函数运行是否超时,规定时间内执行,限制时间)eventlet模块 (eventlet.timeout.Timeout)

發布時間:2025/3/20 34 豆豆

必須要用到多線程來監控嗎?python有沒有內置方法?

有的,找到了!

參考文章:python函數執行超時后跳過

# -*- encoding: utf-8 -*- """ @File : 20200310_python_test.py @Time : 2020/3/10 23:29 @Author : Dontla @Email : sxana@qq.com @Software: PyCharm """ import time import eventlet # 導入eventlet這個模塊eventlet.monkey_patch() # 必須加這條代碼 with eventlet.Timeout(2, False): # 設置超時時間為2秒print('這條語句正常執行')time.sleep(4)print('沒有跳過這條輸出') print('跳過了輸出')

結果:

D:\20191031_tensorflow_yolov3\python\python.exe D:/old/20200310_python_test/20200310_python_test.py 這條語句正常執行 跳過了輸出Process finished with exit code 0

經檢驗,一切正常!

也可以套一個try…except,并將Timeout中參數設置為True,這樣就能在程序運行時監測異常并在檢測到異常后立即對異常進行處理

# -*- encoding: utf-8 -*- """ @File : 20200310_python_test.py @Time : 2020/3/10 23:29 @Author : Dontla @Email : sxana@qq.com @Software: PyCharm """ import time import eventlet # 導入eventlet這個模塊eventlet.monkey_patch() # 必須加這條代碼 try:with eventlet.Timeout(2, False): # 設置超時時間為2秒try:time.sleep(4)# 該語句正常執行except Exception:raise except Exception:print(Exception)

好像不行哎,沒法正常檢測到異常

這是正常執行,不會報異常的!!

需要這樣,將Timeout()中的參數改為True:

# -*- encoding: utf-8 -*- """ @File : 20200310_python_test.py @Time : 2020/3/10 23:29 @Author : Dontla @Email : sxana@qq.com @Software: PyCharm """ import time import eventlet # 導入eventlet這個模塊eventlet.monkey_patch() # 必須加這條代碼 try:# Dontla 20200421 超時將拋出異常with eventlet.Timeout(2, True): # 設置超時時間為2秒time.sleep(4)print('程序運行未超時!') except eventlet.timeout.Timeout:# except: # (或,兩種都行,注意不能用except Exception,因為Exception是異?;?#xff0c;我們這個超時異常未包含在它里面)print('程序運行超時!')

運行結果:

程序運行超時! # -*- encoding: utf-8 -*- """ @File : 20200310_python_test.py @Time : 2020/3/10 23:29 @Author : Dontla @Email : sxana@qq.com @Software: PyCharm """ import time import eventlet # 導入eventlet這個模塊eventlet.monkey_patch() # 必須加這條代碼 try:# Dontla 20200421 超時將拋出異常with eventlet.Timeout(5, True): # 設置超時時間為5秒time.sleep(4)print('程序運行未超時!') except eventlet.timeout.Timeout:# except: # (或,兩種都行,注意不嫩用except Exception,因為Exception是異?;?#xff0c;我們這個超時異常未包含在它里面)print('程序運行超時!')

運行結果:

程序運行未超時!

參考文章:python異常類型(Exception只是常規錯誤的基類)

總結

以上是生活随笔為你收集整理的python如何判断一段代码运行是否超出一定时间,如果超出则抛出异常?(检测函数运行是否超时,规定时间内执行,限制时间)eventlet模块 (eventlet.timeout.Timeout)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。