Sobes.tech
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]

В примерах проверяется, что при отсутствии аргумента создаётся новый список, а не переиспользуется один и тот же объект между вызовами.