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

Python Middle Без компании
В чем разница между передачей в функцию изменяемого и неизменяемого типа данных
Ответы
В Python передача аргументов в функцию всегда происходит по ссылке (pass by assignment). Разница в поведении возникает из-за мутабельности объекта: - **Неизменяемые типы** (int, float, str, tuple, frozenset): при попытке изменить объект внутри функции создается новый объект, а оригинал остается неизменным. ``` def modify_immutable(x): x += 1 print(x) # 6 num = 5 modify_immutable(num) print(num) # 5 (не изменился) ``` - **Изменяемые типы** (list, dict, set): изменения внутри функции отражаются на оригинальном объекте. ``` 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, а для неизменяемых - что функция не может изменить переданное значение.