0
мне сказали, что функция питона проходит по ссылке, вот примерПередача функции python по ссылке?
def append_element(some_list, element):
some_list.append(element)
data = [3, 1, 2]
append_element(data, 4)
print(data)
[3,1,2,4]
Так оригинальный data
изменился. Что заставляет меня чувствовать себя путают это
y = sorted(data)
print(y)
[1,2,3,4]
print(data)
[3,1,2,4]
Если функция питон действительно проходит по ссылке, то почему после вызова этой функции sorted()
, то data
не изменилась?
Python не проходит по ссылке. – user2357112
Я читал книгу «Python for Data Analysis» в приложении, стр. 390. Кроме того, если она не проходит по ссылке, то как объяснить первый пример? – ftxx
Python использует модель передачи параметров, которая довольно распространена в наши дни, но не имеет хорошего имени. Его иногда называют «вызовом по объекту» или (особенно для Java-людей) «передаются по значению, но вы должны иметь в виду, что значение, которое вы передаете, действительно является ссылкой». Обычно я указываю людям следующее объяснение: http://nedbatchelder.com/text/names.html – user2357112