Я пытаюсь написать декоратор для метода, который вызовет второй метод.Когда я запускаю код, я получаю сообщение об ошибке:
AttributeError: 'Backoff' object has no attribute 'formatter'
Упрощенно, код:
class Backoff:
def __init__(self, f):
self.f = f
def __call__(self, *args, **kwargs):
n = 1
while n < 11:
try:
return self.f(self, *args, **kwargs)
except FooError as e:
<handle error>
time.sleep((2 ** n) + (random.randint(0, 1000) / 1000))
n = n + 1
class SomeClass:
def __init__(self):
pass
@Backoff
def first_method(self, foo, bar):
return self.formatter(foo, bar)
def formatter(self, x, y):
return some_function_to_format(x, y)
Как передать второй метод в первый метод вспособ, которым декоратор может распознать это?
Любая помощь будет удивительной!