Junior — Senior
32
Создание отдельного экземпляра без использования изменяемого значения по умолчанию
Условие задачи
Необходимо написать функцию, которая возвращает новый объект того же типа, что и аргумент, но с добавленным элементом. Функция должна корректно работать, когда аргумент не передан (значение по умолчанию — None), и каждый вызов должен создавать независимый объект.
def make_obj(data=None):
if data is None:
data = []
data.append(1)
return data
assert make_obj() == [1]
assert make_obj() == make_obj()
assert make_obj() == [1, 1, 1, 1]
В примерах проверяется, что при отсутствии аргумента создаётся новый список, а не переиспользуется один и тот же объект между вызовами.