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

Как правильно решается проблема изменяемых значений по умолчанию в Python функции

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

Правильное решение - использовать None в качестве значения по умолчанию и создавать новый изменяемый объект внутри функции:

python
def append_to(element, to=None):
    if to is None:
        to = []
    to.append(element)
    return to

Такой подход гарантирует, что при каждом вызове без аргумента to будет создаваться новый список. Это стандартный идиоматический способ решения проблемы в Python.

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

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

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

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