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

На каком уровне выполняется default

В Python default может относиться к разным контекстам, но чаще всего это параметр по умолчанию в функциях или аргументах.

Уровень выполнения:
Параметры по умолчанию вычисляются один раз — при определении функции (на этапе компиляции). Это значит, что изменяемые объекты (например, списки или словари) сохраняются между вызовами.

Пример:

python
def add_item(item, lst=[]):  # lst создаётся при определении функции
    lst.append(item)
    return lst

print(add_item(1))  # [1]
print(add_item(2))  # [1, 2]  # Ожидали [2]? Неправильно!

Решение:
Используйте None и проверку внутри функции:

python
def add_item(item, lst=None):
    if lst is None:
        lst = []
    lst.append(item)
    return lst

Вывод:
default-значения обрабатываются на уровне определения функции, а не её вызова.

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

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

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

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