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