Si creo una función de Python decorador como estoPaso de parámetros a decorador en tiempo de ejecución
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
puedo utilizar de esta manera
@retry_until_true(20, delay=30)
def check_something_function(x, y):
...
return True
pero hay una manera de pasar valores diferentes para los 'intentos 'y' retrasar 'al decorador en tiempo de ejecución, de modo que 20 y 30 son variables?
Se llama al decorador en el momento de la desinfección. Si desea pasar diferentes valores en tiempo de ejecución, ¿por qué no solo tiene una función? Por ejemplo, 'def retry_until_true (func, tries, delay): ...'. –