В прошлый раз я рассмотрел, как работает присваивание в Python. Как выяснилось, присваивание всегда создает новую ссылку на присваиваемый объект и связывает эту ссылку с именем слева от знака присваивания. Аналогично, при передаче значения в вызываемую функцию, с именем параметра связывается новая ссылка на передаваемый объект.
Ни при присваивании, ни при передаче аргументов не происходит копирования объектов.
Как же получить копию объекта в Python?