Я прочитал несколько руководств по python (Dive Into Python, для одного) и ссылку на язык на Python.org - я не понимаю, зачем языку нужны кортежи.
Кортежи не имеют методов по сравнению с списком или набором, и если я должен преобразовать кортеж в набор или список, чтобы иметь возможность их сортировать, то в чем смысл использования кортежа в первую очередь?
Неизменность?
Почему кому-то интересно, если переменная живет в другом месте в памяти, чем когда она была первоначально выделена? Все это дело неизменности в Python, кажется, было подчеркнуто.
В C/С++, если я выделяю указатель и указываю на некоторую допустимую память, мне все равно, где находится адрес, если он не равен null, прежде чем я его использую.
Всякий раз, когда я ссылаюсь на эту переменную, мне не нужно знать, указывает ли указатель на исходный адрес или нет. Я просто проверяю значение null и использую его (или нет).
В Python, когда я выделяю строку (или кортеж), назначаю ее x, а затем изменяю строку, почему мне все равно, является ли это исходным объектом? Пока переменная указывает на мои данные, все, что имеет значение.
>>> x='hello'
>>> id(x)
1234567
>>> x='good bye'
>>> id(x)
5432167
x
все еще ссылается на данные, которые я хочу, почему кто-то должен заботиться о том, является ли его идентификатор одинаковым или другим?