python重試函式封裝 C

2021-09-29 01:43:30 字數 721 閱讀 5552

在發明者量化api文件中發現了一種特別有趣的重試寫法

發明者量化api文件 

感覺這種寫法特別方便又特別有意思,奈何fmz並不開源,於是自己寫了一版,重試間隔、重試次數,我這裡重試通過判斷返回值是否為none,當然也可以通過捕捉異常來決定是否重試。

關於__new__的用法可以參考 

import time

class _c(object):

# delay重試間隔 retry重試次數

def __new__(cls, func, *args, delay=3, retry=3):

while retry:

res = func(*args)

if res != none:

return res

else:

retry -= 1

time.sleep(delay)

def test_1(a, b):

return a + b

def test_2():

return 3

obj_1 = _c(test_1, 1, 2, delay=5)

obj_2 = _c(test_2)

print(obj_1, obj_2)

封裝 axios 實現自動重試

為什麼寫這個題目呢?因為之前寫的乙個 node 程式有點小問題,使用的 axios 通過 請求資料,伺服器 阿布雲 時不時抽風 407 413 503 因為第一次寫的時候當做乙個 demo 去實現的,寫的挺簡陋,只能說大體功能對,但是沒有容錯機制。這裡我們先算一筆帳啊,一次請求等於 1 100 次,...

python中的重試

安裝 pip install retrying retry 裝飾器會對函式不斷的重試 預設無限重試 retry def pick one print pick t random.randint 0,2 print t if t 1 raise exception 1 is not picked if...

Python出錯重試 retrying

在編寫python 進行自動化測試 網路爬蟲或者其他與網路相關的動作的時候,由於網路影響會容易失敗,而這種失敗並不是我們需要去處理的。那麼這種時候最好的辦法就是失敗後重試幾次,以避免網路的間斷性影響。如果我們正常編寫 的話,可能需要 try except 但是這種寫法很麻煩,能實現的效果也很單一。這...