5
裝飾機如果我創建這樣參數傳遞到運行時
def retry_until_true(tries, delay=60):
"""
Decorator to rety a function or method until it returns True.
"""
def deco_retry(f):
def f_retry(*args, **kwargs):
mtries = tries
rv = f(*args, **kwargs)
while mtries > 0:
if rv is True:
return True
mtries -= 1
time.sleep(delay)
rv = f(*args, **kwargs)
return False
return f_retry
return deco_retry
一個Python裝飾功能,我可以用它像這樣
@retry_until_true(20, delay=30)
def check_something_function(x, y):
...
return True
但是,有沒有辦法通過不同的值「嘗試'和'延遲'在運行時裝飾,所以20和30是變量?
裝飾者在def時間被調用。如果你想在運行時傳遞不同的值,爲什麼不只是有一個函數。例如:'def retry_until_true(func,try,delay):...'。 – 2012-08-07 23:23:38