Вступить в клуб →
лёгкаявопросPython и асинхронность

Изменяемый список как значение по умолчанию: что напечатает второй вызов функции

Вы разбираете код сервиса корзины и видите такую функцию:

def add_item(item, basket=[]):
    basket.append(item)
    return basket

print(add_item("яблоко"))
print(add_item("груша"))

Что напечатает этот код?

  • ['яблоко'] и ['груша'] — при каждом вызове создаётся новый пустой список
  • ['яблоко'] и ['яблоко', 'груша'] — список создан один раз и переиспользуется
  • ['яблоко'] и None — append меняет список на месте и ничего не возвращает
  • ['яблоко'], а затем ошибка: значение по умолчанию уже изменено и непригодно

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела