Встречается на собеседованиях • сегодня
Почему в качестве значений по умолчанию в Python функции не рекомендуют использовать изменяемые типы
Использование изменяемых объектов (списков, словарей) в качестве значений по умолчанию может привести к неожиданному поведению, так как они создаются только один раз при определении функции и сохраняются между вызовами. Это может вызвать нежелательное разделение состояния между разными вызовами функции.
Пример проблемы:
python
def add_item(item, items=[]):
items.append(item)
return items
print(add_item(1)) # [1]
print(add_item(2)) # [1, 2] - неожиданно!Правильный подход - использовать None и создавать изменяемый объект внутри функции:
python
def add_item(item, items=None):
if items is None:
items = []
items.append(item)
return itemsЭто гарантирует, что каждый вызов получит новый список.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы