Существует только пара встроенных типов, которые работают как ссылки, например list
.
Итак, для меня pythonic способ сделать передачу по значению для списка, в этом примере, будет:
list1 = [0,1,2,3,4]
list2 = list1[:]
list1[:]
создает новый экземпляр списка list1, и вы можете назначить его новой переменной.
Возможно, вы могли бы написать функцию, которая могла бы получить один аргумент, затем проверить ее тип и в соответствии с этим выполнить встроенную операцию, которая могла бы вернуть новый экземпляр переданного аргумента.
Как я уже говорил ранее, есть только несколько встроенных типов, их поведение похоже на ссылки, списки в этом примере.
В любом случае ... надеюсь, это поможет.