Назад к вопросам
Junior — Middle
80
Можно ли задать список как значение по умолчанию для параметра функции?
Ответ от нейросети
sobes.tech AI
В Python нельзя использовать изменяемые объекты (например, список) в качестве значения по умолчанию для параметров функции без осторожности, так как это может привести к неожиданному поведению из-за того, что значение по умолчанию вычисляется один раз при определении функции.
Пример проблемы:
def add_item(item, items=[]):
items.append(item)
return items
print(add_item(1)) # [1]
print(add_item(2)) # [1, 2] — список сохраняется между вызовами!
Правильный способ — использовать None в качестве значения по умолчанию и создавать новый список внутри функции:
def add_item(item, items=None):
if items is None:
items = []
items.append(item)
return items
print(add_item(1)) # [1]
print(add_item(2)) # [2]
Таким образом, технически задать список как значение по умолчанию можно, но делать это напрямую не рекомендуется из-за особенностей работы Python с изменяемыми объектами.