Sobes.tech
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] — теперь корректно

Так я избежал побочных эффектов, связанных с изменяемыми значениями по умолчанию.