Изменяемый список как значение по умолчанию: что напечатает второй вызов функции
Вы разбираете код сервиса корзины и видите такую функцию:
def add_item(item, basket=[]):
basket.append(item)
return basket
print(add_item("яблоко"))
print(add_item("груша"))
Что напечатает этот код?
- ['яблоко'] и ['груша'] — при каждом вызове создаётся новый пустой список
- ['яблоко'] и ['яблоко', 'груша'] — список создан один раз и переиспользуется
- ['яблоко'] и None — append меняет список на месте и ничего не возвращает
- ['яблоко'], а затем ошибка: значение по умолчанию уже изменено и непригодно
