Как работает передача ссылки в функцию в Python?
В Python, когда вы передаете аргументы в функцию, вы передаете ссылки на объекты, а не сами объекты. Это означает, что функция получает ссылку на объект в памяти, где этот объект хранится.
Когда вы передаете изменяемый объект (например, список) в функцию и изменяете его внутри функции, эти изменения будут отражены в оригинальном объекте, поскольку объект передавался по ссылке. Однако, если вы изменяете неизменяемый объект (например, строку или кортеж) внутри функции, это не изменит оригинальный объект за пределами функции, поскольку неизменяемые объекты передаются по значению.
Пример:
def modify_list(lst):
lst.append(4)
print("List inside function:", lst)
my_list = [1, 2, 3]
print("Original list:", my_list) # => [1, 2, 3]
modify_list(my_list)
print("List outside function:", my_list) # => [1, 2, 3, 4]
В этом примере мы передаем список my_list в функцию modify_list(). Функция добавляет элемент 4 в список. Когда мы печатаем список до и после вызова функции, мы увидим, что список изменится внутри функции и измененный список будет доступен за пределами функции.