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 に答える