我有以下第三方装饰器:
def retry(exception_to_check, tries=4, delay=3, backoff=2, logger=None):
我想制作另一个装饰器
@my_retry
,它与@retry
类似,但具有固定的参数。我尝试使用
functools.partial
来做到这一点:my_retry = partial(retry, RETRY_EXCEPTIONS, tries=5, delay=5, backoff=3, logger=logging)
但是当我使用新的装饰器时,出现以下异常:
TypeError: retry() got multiple values for keyword argument 'tries'
我究竟做错了什么?
最佳答案
您需要做的是在retry
周围做一个包装,像这样
def my_retry(retry_exceptions, tries=5, delay=5, backoff=3, logger=logging):
return retry(retry_exceptions, tries, delay, backoff, logger)
并使用
@my_retry()
。关于python - 修复装饰器参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23320405/