我有以下第三方装饰者:
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'
我做错了什么?
答案 0 :(得分: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()
。