Ruff function-call-in-default-argument (B008)
function-call-in-default-argument в Ruff проверяет код на предупреждение B008. Правило относится к группе flake8-bugbear.
Почему это неправильно
Такая конструкция часто указывает на скрытую ошибку, неожиданное поведение Python или слишком хрупкий код.
Если валидатор показывает это предупреждение, исправьте место, на которое указывает Ruff, ориентируясь на смысл правила function-call-in-default-argument и пример ниже.
Пример ошибки
def create_list() -> list[int]:
return [1, 2, 3]
def mutable_default(arg: list[int] = create_list()) -> list[int]:
arg.append(4)
return arg
Как правильно
def better(arg: list[int] | None = None) -> list[int]:
if arg is None:
arg = create_list()
arg.append(4)
return arg
Автоисправление
Ruff не предлагает автоисправление для этого правила.
