Junior — Middle
81
Ispričajte o uobičajenoj grešci koju ste napravili u prethodnom projektu i kako ste je ispravili
Одговор од АИ
sobes.tech АИ
В одном из проектов я столкнулся с ошибкой, связанной с изменяемыми объектами в 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] — теперь корректно
Так я избежал побочных эффектов, связанных с изменяемыми значениями по умолчанию.