Почему функция Python помнит старые элементы списка

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

Для проверки напишите функцию, которая добавляет задачу в список и возвращает его. Вызовите её дважды с разными задачами. Во втором результате окажутся обе: первый вызов уже изменил общий список.

Затем замените значение по умолчанию на None. Внутри функции проверяйте items is None и в этом случае создавайте новый список. Повторите два вызова: теперь у каждой задачи будет отдельный список.

Такой опыт помогает понять, когда создаются значения по умолчанию и откуда берётся состояние между вызовами.

Разбор с примерами и коротким видео
Просмотры: 33
Открыть в MAX Сообщить о неточности

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти