Back to questions
Junior — Middle
60
Расскажи о распространенной ошибке, которую ты совершил в предыдущем проекте и как ты ее исправил
Answer from AI
sobes.tech AI
В одном из проектов я столкнулся с ошибкой, связанной с изменяемыми объектами в Python, а именно — с использованием списка как значения по умолчанию в функции. Из-за этого при нескольких вызовах функции список накапливал элементы, что приводило к неожиданному поведению.
Пример ошибки:
def add_item(item, items=[]):
items.append(item)
return items
print(add_item(1)) # [1]
print(add_item(2)) # [1, 2] — неожиданно
Исправил это, заменив значение по умолчанию на None и инициализируя список внутри функции:
def add_item(item, items=None):
if items is None:
items = []
items.append(item)
return items
print(add_item(1)) # [1]
print(add_item(2)) # [2] — теперь корректно
Так я избежал побочных эффектов, связанных с изменяемыми значениями по умолчанию.