Junior — Middle
101
¿Se puede establecer una lista como valor predeterminado para un parámetro de función?
Respuesta de la IA
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 с изменяемыми объектами.