Как работают ссылки в Python?

Меня смущают ссылки на Python. Рассмотрим следующий пример:

Моя задача: Редактировать каждый элемент в списке

d = { 'm': [1,2,3] }
m = d['m']
m = m[1:]   # m changes its reference to the new sliced list, edits m but not d (I wanted to change d)

Аналогично:

d = { 'm': [1,2,3] }
m = d['m']
m = m[0]    # As per python referencing, m should be pointing to d['m'] and should have edited d

В питоне все идет по ссылке, тогда когда создается новый объект? Всегда ли нам нужны copyи deepcopyиз модуля copyдля создания копий объектов?

Пожалуйста, поясните.

5
задан bernie 16 March 2012 в 00:07
поделиться