Wenn ich ein Python-Dekorateur Funktion wie diesePassing Parameter zur Laufzeit Dekorateur
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
schaffe ich es, wie dieses
@retry_until_true(20, delay=30)
def check_something_function(x, y):
...
return True
verwenden Aber ist es eine Möglichkeit, unterschiedliche Werte zu übergeben für ‚versucht 'und' Delay 'auf den Dekorator zur Laufzeit, so dass 20 und 30 Variablen sind?
Der Dekorator wird zur Def-Zeit aufgerufen. Wenn Sie zur Laufzeit verschiedene Werte übergeben wollen, haben Sie einfach eine Funktion. Beispiel: 'def retry_until_true (func, tries, delay): ...'. –