Что будет если в функции дефолтный параметром объявить пустой список

Python Senior Без компании
Что будет если в функции дефолтный параметром объявить пустой список
Ответы
В 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 ``` Так каждый вызов получит новый список. Это стандартный паттерн для избежания проблем с изменяемыми дефолтными параметрами.