0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在Python中關(guān)于retrying庫的使用

麥辣雞腿堡 ? 來源:Python都知道 ? 作者:了不起 ? 2023-11-14 11:01 ? 次閱讀

編程的時候,我們難免會遇到一些不可靠的情況,比如網(wǎng)絡(luò)請求失敗,數(shù)據(jù)庫連接超時等等。這些不確定性會讓我們的程序容易出現(xiàn)各種錯誤和異常。那么如何來增加程序的容錯性和健壯性呢?

可能大多數(shù)人會想到使用try except來進行異常捕捉進行失敗重試(Retry)。雖然try-escept一個非常常見和有效的方式來增強程序穩(wěn)定性,但是可能一不小心就會造成棧溢出。

所以接下來我就來介紹一個另外的一個專門用于失敗重試的庫:retrying。

定義

Python生態(tài)中,retrying庫提供了非常便捷的裝飾器和函數(shù)來幫助我們輕松添加失敗重試機制。它可以自定義重試策略、停止條件、等待間隔等,對各種異常進行捕捉處理。使用retrying可以大大減少我們重復(fù)編寫失敗重試輪詢的代碼量。

下載retrying

pip install retrying

無參數(shù)重試

我們可以直接在函數(shù)上使用裝飾器@retry來進行失敗重試

import retrying
@retry
def func():
    for item in range(0,100):
        result=item / 0
        print(result)
        return result

func()

但是這種方式并不建議使用,就像上面的代碼,我們都知道0作為除數(shù)就會報錯,在上面的func函數(shù)中,因為加了@retry裝飾器進行失敗重試,這樣就就會進入一個死循環(huán)一直失敗一直重試。

所以我們在進行失敗重試的時候最好是需要加上一些參數(shù)來限制失敗重試。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3521

    瀏覽量

    93275
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3712

    瀏覽量

    64027
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

    84081
收藏 人收藏

    評論

    相關(guān)推薦

    【建議收藏】Python大全

    。;concurrent-futures一concurrent-futures模塊為調(diào)用異步執(zhí)行提供了一個高層次的接口。異步網(wǎng)絡(luò)編程asyncio- (Python 3.4 +版本以上的P
    發(fā)表于 09-06 15:58

    自定義Python PyPI存儲

    軟件包的依賴關(guān)系,而不考慮版本棄用或最新的向后不兼容版本。當(dāng)然,這可以通過requirements.txt定義版本來完成,但是要確保我們得到的每個軟件包都像我們期望的那樣,最好使用自定義存儲
    發(fā)表于 09-14 15:59

    關(guān)于Python編程入門系列教程》說明及教程匯總

    成為了我們了解人工智能的首選編程軟件。二、關(guān)于教程本教程以純軟件的編程為主,并不涉及任何的硬件部分。程序編寫部分以Mind+軟件的“Python 模式”為開發(fā)工具(自帶基于Python
    發(fā)表于 06-23 10:10

    ADM1266 Python

    ADM1266 Python
    發(fā)表于 03-23 15:47 ?1次下載
    ADM1266 <b class='flag-5'>Python</b><b class='flag-5'>庫</b>

    詳解Python的Pandas和Numpy

    pandas、numpy是Python數(shù)據(jù)科學(xué)中非常常用的,numpy是Python的數(shù)值計算擴展,專門用來處理矩陣,它的運算效率比列表更高效。
    的頭像 發(fā)表于 05-25 12:49 ?2323次閱讀

    關(guān)于python中非常實用的一個圖像處理 1

    PIL:Python Imaging Library,是Python環(huán)境下最受歡迎的圖像處理,木有之一。然而,Python2.7之后不再
    的頭像 發(fā)表于 02-08 17:18 ?1218次閱讀

    關(guān)于python中非常實用的一個圖像處理 2

    PIL:Python Imaging Library,是Python環(huán)境下最受歡迎的圖像處理,木有之一。然而,Python2.7之后不再
    的頭像 發(fā)表于 02-08 17:18 ?1012次閱讀

    如何安裝常用Python

    Python作為一種流行的編程語言,擁有豐富的第三方資源,這些可以幫助開發(fā)者輕松實現(xiàn)各種功能,從數(shù)據(jù)分析到Web開發(fā),從機器學(xué)習(xí)到圖像處理,涵蓋了各個領(lǐng)域。
    的頭像 發(fā)表于 04-14 12:11 ?1023次閱讀

    Pythontelnetlib模塊的基本使用

    telnetlib 是 Python 標(biāo)準(zhǔn)的一個模塊,它提供了 Telnet 協(xié)議的客戶端功能。使用 telnetlib 模塊,我們可以 Py
    的頭像 發(fā)表于 05-04 14:27 ?7420次閱讀

    TSMaster小功能—Python小程序如何導(dǎo)入外部

    解析器下安裝外部。步驟一TSMaster工具->系統(tǒng)信息->python環(huán)境設(shè)置中選擇打開解析器路徑;步驟二該文件路徑輸入cmd,打
    的頭像 發(fā)表于 08-14 10:06 ?998次閱讀
    TSMaster小功能—<b class='flag-5'>Python</b>小程序如何導(dǎo)入外部<b class='flag-5'>庫</b>

    python有什么用 如何用python創(chuàng)建數(shù)據(jù)

    開發(fā)、游戲開發(fā)、機器學(xué)習(xí)、自然語言處理等領(lǐng)域。 本文中,我們將介紹如何使用Python創(chuàng)建數(shù)據(jù)。首先,讓我們了解一下什么是數(shù)據(jù)。 什么是數(shù)據(jù)
    的頭像 發(fā)表于 08-28 16:41 ?1060次閱讀

    python讀取數(shù)據(jù)數(shù)據(jù) python查詢數(shù)據(jù) python數(shù)據(jù)連接

    ,獲取數(shù)據(jù)的數(shù)據(jù),并對數(shù)據(jù)進行增刪改查等操作。本文將詳細介紹Python如何連接數(shù)據(jù)、讀取數(shù)據(jù)數(shù)據(jù)以及如何進行查詢操作。 一、
    的頭像 發(fā)表于 08-28 17:09 ?1602次閱讀

    Pythonoloredlogs的使用

    coloredlogs介紹 coloredlogs是一個Python,它允許開發(fā)人員控制臺打印彩色日志。這個的主要優(yōu)點是它可以很容易地改變?nèi)罩鞠⒌念伾?,從而使日志更易于閱讀和理
    的頭像 發(fā)表于 10-07 11:28 ?716次閱讀
    <b class='flag-5'>Python</b><b class='flag-5'>庫</b><b class='flag-5'>中</b>oloredlogs的使用

    Pythonretrying的有參數(shù)重試

    有參數(shù)重試 (1) stop_max_attempt_number retry傳入stop_max_attempt_number參數(shù)后可以指定失敗重試的次數(shù) @retry
    的頭像 發(fā)表于 11-14 11:08 ?579次閱讀
    <b class='flag-5'>Python</b><b class='flag-5'>中</b><b class='flag-5'>retrying</b><b class='flag-5'>庫</b>的有參數(shù)重試

    python如何引入math

    Python,要使用math,首先需要先引入它。mathPython的一個標(biāo)準(zhǔn)
    的頭像 發(fā)表于 11-22 11:03 ?3383次閱讀