Ruff cached-instance-method (B019)
cached-instance-method в Ruff проверяет код на предупреждение B019. Правило относится к группе flake8-bugbear.
Почему это неправильно
Такая конструкция часто указывает на скрытую ошибку, неожиданное поведение Python или слишком хрупкий код.
Если валидатор показывает это предупреждение, исправьте место, на которое указывает Ruff, ориентируясь на смысл правила cached-instance-method и пример ниже.
Пример ошибки
from functools import lru_cache
def square(x: int) -> int:
return x * x
class Number:
value: int
@lru_cache
def squared(self):
return square(self.value)
Как правильно
from functools import lru_cache
@lru_cache
def square(x: int) -> int:
return x * x
class Number:
value: int
def squared(self):
return square(self.value)
Автоисправление
Ruff не предлагает автоисправление для этого правила.
