В функции с параметром
items=[] пустой список создаётся один раз, когда Python выполняет определение функции. Если добавлять в него элементы, следующий вызов без этого аргумента получит тот же изменённый список.Для проверки напишите функцию, которая добавляет задачу в список и возвращает его. Вызовите её дважды с разными задачами. Во втором результате окажутся обе: первый вызов уже изменил общий список.
Затем замените значение по умолчанию на
None. Внутри функции проверяйте items is None и в этом случае создавайте новый список. Повторите два вызова: теперь у каждой задачи будет отдельный список.Такой опыт помогает понять, когда создаются значения по умолчанию и откуда берётся состояние между вызовами.
Разбор с примерами и коротким видео