Одной из важных особенностей Python является его система управления памятью и особенности работы с различными типами данных. Характерной чертой является то, как функции взаимодействуют с неизменяемыми объектами. В этой статье мы обсудим, как передача неизменяемых объектов — таких как целые числа (int) и строковые значения (str) — происходит "под капотом", и как это влияет на ваше программирование. В Python все параметры передаются по значению, но что именно это означает? Напротив хорошо известной концепции передачи по значению или по ссылке из других языков программирования, в Python это означает передачу ссылки на объект. Это важно для понимания: когда вы передаёте объект в функцию, вы фактически передаете ссылку на него, а не его копию. Давайте посмотрим, как это работает на примере с неизменяемыми типами данных. Рассмотрим пример, в котором мы передаём целое число в функцию и изменяем его внутри функции. Когда вы изменяете значение неизменяемого объекта внутри функции, результатом б