Встречается на собеседованиях • сегодня
В чем разница между передачей в функцию изменяемого и неизменяемого типа данных
В 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, а для неизменяемых - что функция не может изменить переданное значение.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы