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

Какая есть опасность при использовании изменяемых типов данных

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

Пример с аргументом по умолчанию:

python
def add_item(item, items=[]):
    items.append(item)
    return items

print(add_item(1)) # [1]
print(add_item(2)) # [1, 2] - список сохраняется между вызовами!

text
**Решение:**  
```python
def add_item(item, items=None):
    if items is None:
        items = []
    items.append(item)
    return items

Также изменяемые объекты могут неожиданно меняться при передаче в функцию, так как передаются по ссылке. Например:

python
def modify_list(lst):
    lst.append(4)

my_list = [1, 2, 3]
modify_list(my_list)
print(my_list)  # [1, 2, 3, 4] - исходный список изменился

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

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

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

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

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