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

В чем разница между передачей в функцию изменяемого и неизменяемого типа данных

В Python передача аргументов в функцию всегда происходит по ссылке (pass by assignment). Разница в поведении возникает из-за мутабельности объекта:

  • Неизменяемые типы (int, float, str, tuple, frozenset): при попытке изменить объект внутри функции создается новый объект, а оригинал остается неизменным.
python
def modify_immutable(x):
    x += 1
    print(x)  # 6

num = 5
modify_immutable(num)
print(num) # 5 (не изменился)

text

- **Изменяемые типы** (list, dict, set): изменения внутри функции отражаются на оригинальном объекте.
```python
def modify_mutable(lst):
    lst.append(4)
    print(lst)  # [1, 2, 3, 4]

my_list = [1, 2, 3]
modify_mutable(my_list)
print(my_list)  # [1, 2, 3, 4] (изменился)

Для изменяемых объектов важно учитывать side effects, а для неизменяемых - что функция не может изменить переданное значение.

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

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

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

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