В python две разные переменные могут представлять один и тот же объект. Обратите внимание:Когда переменные относятся к одному и тому же объекту, как это называется, и почему у python есть эта функция?
>>> list1=['This is list1.']
>>> list2=list1
>>> list2[0] = 'This is actually list2 not list one.'
>>> print list1
['This is actually list2 not list one.']
Here is a link to this code. Как вы можете видеть, нет песни1 или песни2, только один список с двумя именами. Мне хорошо известно об этом эффекте, и я помню из книги, что это намеренно, но я забываю, что такое явление. Кроме того, это случайный источник ошибок, и другие языки не имеют этой проблемы. У меня есть ощущение, что некоторые вещи, связанные с объектами, сломаются, но без него. Каковы конкретные преимущества этого (поскольку python - это все, что я действительно знаю.)
[Потенциально полезный] (http://pythontutor.com/visualize.html#code=list1+%3D+%5B'This+is+list1.'%5D%0Alist2+%3D+list1%0Alist2%5B0%5D+% 3D + 'Этот + есть + фактически + list2 + not + list + one.'% 0Aprint + list1 & mode = display & cumulative = false & heapPrimitives = false & drawParentPointers = false & textReferences = false & showOnlyOutputs = false & py = 2 & curInstr = 0) – Eric
Как функционируют аргументы, если это не было дело? –
Да, может быть, моя книга была неправильной. – PyRulez