Ответ выше правильный, но я возражаю против семантики «ссылки».
C-подобные языки рассматривают переменные как фиксированные ведра, в которые помещаются значения. Когда вы вызываете функцию, создается новый набор ведер, и значения копируются в них. Иногда, ведро является передачей по ссылке и фактически становится псевдонимом для ведра вызывающего.
Python, с другой стороны, рассматривает переменные как простые метки (имена) для значений (объектов). Когда вы вызываете функцию, создается новый набор меток и наклеивается на те же объекты.
Не имеет смысла упоминать «ссылки» в контексте Python, потому что на каждом другом языке, «Ссылка» подразумевает альтернативу «ценности». У Питона нет такой двойственности; он просто проходит и назначает объекты. Ничто не упоминается - .
Возможно, Nitpicky, но терминология не приводит к путанице для программистов на C ++, которые, например, слышать пропуски Python по ссылкам и не понимать, как переназначить имена вызывающих.