Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
def add_item(item, box=[]):
box.append(item)
return box
add_item(1)
print(add_item(2))[1, 2]
- Ждать
[2], будто каждый вызов получает новый пустой список: значение[]создаётся один раз при выполненииdef, и оба вызова добавляют в один список. - Ждать
TypeError, будто список нельзя сделать значением по умолчанию: можно любой объект, а ловушка в том, что этот один список делят все вызовы.
- Как переписать
add_itemсо значением по умолчаниюNone, чтобы каждый вызов начинался с пустого списка? - Что вернёт
add_item(3, [])после этих двух вызовов?