Как в функцию передаются аргументы, по ссылке или по значению

Python Junior Билайн
Как в функцию передаются аргументы, по ссылке или по значению
Ответы
В Python аргументы всегда передаются по **ссылке на объект** (call by object reference). Однако поведение зависит от типа объекта: - Для **изменяемых** объектов (списки, словари, множества) изменения внутри функции отражаются на оригинальном объекте: ``` def modify_list(lst): lst.append(4) my_list = [1, 2, 3] modify_list(my_list) print(my_list) # [1, 2, 3, 4] ``` - Для **неизменяемых** объектов (числа, строки, кортежи) создается новая копия при изменении: ``` def modify_num(x): x += 10 num = 5 modify_num(num) print(num) # 5 (не изменилось) ``` Важно: присваивание (=) внутри функции создает новую ссылку, не изменяя оригинал. Для изменяемых объектов методы (append, extend и т.д.) меняют оригинал.