Распространенной ошибкой в 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']
Объяснение, почему это происходит, здесь .
А теперь мой вопрос: Есть ли хороший вариант использования для этого синтаксиса?
Я имею в виду, если каждый, кто сталкивается с ней, совершает одну и ту же ошибку, отлаживает ее, понимает проблему и оттуда пытается ее избежать, какая польза от такого синтаксиса?