Хорошее использование значений по умолчанию для изменяемых аргументов функции?

В Python распространенной ошибкой является установка изменяемого объекта в качестве значения аргумента функции по умолчанию. Вот пример, взятый из этой прекрасной статьи Дэвида Гуджера :

>>> def bad_append(new_item, a_list=[]):
        a_list.append(new_item)
        return a_list
>>> print bad_append('one')
['one']
>>> print bad_append('two')
['one', 'two']

Объяснение того, почему это происходит, находится здесь .

А теперь мой вопрос: Есть ли хороший вариант использования этого синтаксиса?

Я имею в виду, если все, кто сталкивается с ним, совершают ту же ошибку, отлаживают ее, понимают проблему и, исходя из этого, пытаются ее исправить. избегайте этого, какая польза от такого синтаксиса?

59
задан Mark Cramer 3 May 2019 в 01:40
поделиться