Я прочитав кілька навчальних посібників з python (Dive Into Python, для одного) та посилання на мову Python.org - не знаю, чому для цієї мови потрібні кортежі.
Кортежі не мають методів порівняно зі списком чи набором, і якщо я повинен перетворити кортеж у набір чи список, щоб мати можливість їх сортувати, який сенс використовувати кортеж в першу чергу?
Незмінюваність?
Чому когось хвилює, чи змінна живе в іншому місці пам’яті, ніж коли вона була призначена спочатку? Весь цей бізнес непорушності в Python, здається, занадто наголошений.
Якщо в C / C ++ я виділяю вказівник і вказую на якусь дійсну пам'ять, мені все одно, де знаходиться адреса, доки вона не буде нульовою, перш ніж я її використовувати.
Щоразу, коли я посилаюсь на цю змінну, мені не потрібно знати, чи вказівник все ще вказує на оригінальну адресу чи ні. Я просто перевіряю наявність нуля і використовую його (чи ні).
У Python, коли я виділяю рядок (або кортеж), присвоюю його x, а потім змінюю рядок, чому мені байдуже, чи це оригінальний об'єкт? Поки змінна вказує на мої дані, це все, що має значення.
>>> x='hello'
>>> id(x)
1234567
>>> x='good bye'
>>> id(x)
5432167
x
все ще посилається на потрібні мені дані, чому хтось повинен дбати, чи його ідентичний номер однаковий чи різний?