Почему опасно использовать изменяемые объекты в качестве значений параметров по умолчанию?
Уровень: Middle
Ответ
Значение параметра по умолчанию вычисляется однажды при определении функции и затем используется при каждом вызове (если аргумент не передан явно). Если это изменяемый объект (например, список), то все вызовы функции будут разделять один и тот же экземпляр. Изменения, сделанные в нём в одном вызове, сохранятся для следующих вызовов, что зачастую приводит к логическим ошибкам. Рекомендуется использовать None в качестве default и внутри функции присваивать новое изменяемое значение.