2

我有以下第三方装饰器:

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'

我究竟做错了什么?

4

1 回答 1

1

你需要做的是做一个包装retry,像这样

def my_retry(retry_exceptions, tries=5, delay=5, backoff=3, logger=logging):
    return retry(retry_exceptions, tries, delay, backoff, logger)

并使用@my_retry().

于 2014-04-27T07:05:36.110 回答