> Как происходит передача аргументов в функцию в Python (Python)
Уровень: senior · Роль: backend · Язык: Python · Категория: Технические вопросы
Компании: IPChain, Фабрика решений
Стек: Python
> Пример ответа
В Python передача аргументов в функцию осуществляется исключительно по ссылке (pass-by-object-reference). Это означает, что в функцию передаётся ссылка на объект, а не копия значения. Однако поведение зависит от мутабельности объекта:
- Неизменяемые типы (int, str, tuple, frozenset) ведут себя как "по значению", так как при попытке изменения внутри функции создаётся новый объект, а внешняя переменная остаётся неизменной.
- Изменяемые типы (list, dict, set, пользовательские классы) передаются по ссылке, и их модификация внутри функции отражается на оригинале.
Пример:
PYTHONdef modify(x, lst):x = 10 # создаётся новый int, внешняя a не меняетсяlst.append(4) # изменяет исходный списокa = 5b = [1, 2, 3]modify(a, b)print(a) # 5print(b) # [1, 2, 3, 4]
Важно: присваивание параметру нового значения (например, x = ...) никогда не меняет внешнюю переменную - это просто перенаправление локальной ссылки. Для изменения неизменяемого объекта нужно вернуть новое значение и присвоить его снаружи.
> Похожие задачи по Python
В каком порядке строить составной индекс для user_id и даты
Что такое coroutine и как он работает в Python
Какие HTTP статусы существуют и каково назначение 2xx, 3xx, 4xx, 5xx
Как устроены структуры данных list, dict и set в Python?
> Похожие задачи по backend
Что такое coroutine и как он работает в Python
В чем разница между процессом и потоком и какова их иерархия?
Какие HTTP статусы существуют и каково назначение 2xx, 3xx, 4xx, 5xx
Как устроены структуры данных list, dict и set в Python?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью