> Как происходит передача аргументов в функцию в Python (Python)

Уровень: senior · Роль: backend · Язык: Python · Категория: Технические вопросы

Компании: IPChain, Фабрика решений

Стек: Python

> Пример ответа

В Python передача аргументов в функцию осуществляется исключительно по ссылке (pass-by-object-reference). Это означает, что в функцию передаётся ссылка на объект, а не копия значения. Однако поведение зависит от мутабельности объекта:

  • Неизменяемые типы (int, str, tuple, frozenset) ведут себя как "по значению", так как при попытке изменения внутри функции создаётся новый объект, а внешняя переменная остаётся неизменной.
  • Изменяемые типы (list, dict, set, пользовательские классы) передаются по ссылке, и их модификация внутри функции отражается на оригинале.

Пример:

PYTHON
def modify(x, lst):
x = 10 # создаётся новый int, внешняя a не меняется
lst.append(4) # изменяет исходный список
a = 5
b = [1, 2, 3]
modify(a, b)
print(a) # 5
print(b) # [1, 2, 3, 4]

Важно: присваивание параметру нового значения (например, x = ...) никогда не меняет внешнюю переменную - это просто перенаправление локальной ссылки. Для изменения неизменяемого объекта нужно вернуть новое значение и присвоить его снаружи.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью