Встречается на собеседованиях • сегодня

Что будет если в функции дефолтный параметром объявить пустой список

В 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

Так каждый вызов получит новый список. Это стандартный паттерн для избежания проблем с изменяемыми дефолтными параметрами.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы