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