Рассмотрите Python‑функцию: def add_item(item, lst=[]): lst.append(item); return lst — объясните, почему при последовательных вызовах функция сохраняет элементы между вызовами, в чём здесь отличие синтаксиса от семантики, и как правильно реализовать ожидаемое поведение