Как работает передача ссылки в функцию в Python?

Аватар пользователя Ivan Gagarinov
Ivan Gagarinov
20 мая 2024

В 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 в список. Когда мы печатаем список до и после вызова функции, мы увидим, что список изменится внутри функции и измененный список будет доступен за пределами функции.

0 0
Познакомьтесь с основами Python бесплатно