Я просто болтал в интерпретаторе и сталкивался с тем, что я не понимаю. Когда я создаю кортеж со списком как один из элементов, а затем пытаюсь обновить этот список, происходит что-то странное. Например, когда я запускаю это:
tup = (1,2,3,[4,5])
tup[3] += [6]
Я получаю:
TypeError: 'tuple' object does not support item assignment
Это именно то, чего я ожидал. Однако, когда я снова ссылаюсь на кортеж, я получаю:
>>> tup
(1, 2, 3, [4, 5, 6])
Таким образом, список был фактически обновлен, хотя python выбрал исключение. Как это работает? Я не могу представить себе сценарий, в котором я действительно хотел бы сделать что-то подобное, но мне все же хотелось бы понять, что происходит. Спасибо.