Ruff mutable-argument-default (B006)
mutable-argument-default в Ruff проверяет код на предупреждение B006. Правило относится к группе flake8-bugbear.
Почему это неправильно
Такая конструкция часто указывает на скрытую ошибку, неожиданное поведение Python или слишком хрупкий код.
Если валидатор показывает это предупреждение, исправьте место, на которое указывает Ruff, ориентируясь на смысл правила mutable-argument-default и пример ниже.
Пример ошибки
def add_to_list(item, some_list=[]):
some_list.append(item)
return some_list
l1 = add_to_list(0) # [0]
l2 = add_to_list(1) # [0, 1]
Как правильно
def add_to_list(item, some_list=None):
if some_list is None:
some_list = []
some_list.append(item)
return some_list
l1 = add_to_list(0) # [0]
l2 = add_to_list(1) # [1]
Автоисправление
Ruff может предложить автоисправление в некоторых случаях.
