Przeczytałem kilka samouczków dotyczących języka Python (na przykład Dive Into Python) i odniesienie do języka na Python.org - nie rozumiem, dlaczego język wymaga krotek.
Krotki nie mają metod w porównaniu z listą lub zbiorem, a jeśli muszę przekonwertować krotkę na zestaw lub listę, aby móc je sortować, jaki jest sens używania krotki w pierwszej kolejności?
Niezmienność?
Dlaczego kogoś obchodzi, czy zmienna żyje w innym miejscu w pamięci niż wtedy, gdy została pierwotnie przydzielona? Wydaje się, że cała ta niezmienność w Pythonie jest zbyt mocno podkreślana.
W C / C ++, jeśli przydzielę wskaźnik i wskażę jakąś prawidłową pamięć, nie obchodzi mnie, gdzie znajduje się adres, o ile nie jest pusty, zanim go użyję.
Ilekroć odwołuję się do tej zmiennej, nie muszę wiedzieć, czy wskaźnik nadal wskazuje oryginalny adres, czy nie. Po prostu sprawdzam, czy nie ma null i używam go (lub nie).
W Pythonie, kiedy przydzielam ciąg (lub krotkę), przypisuję go do x, a następnie modyfikuję ciąg, dlaczego obchodzi mnie, czy to oryginalny obiekt? Dopóki zmienna wskazuje na moje dane, to wszystko się liczy.
>>> x='hello'
>>> id(x)
1234567
>>> x='good bye'
>>> id(x)
5432167
x
nadal odwołuje się do danych, które chcę, dlaczego ktoś musi się przejmować, czy jego identyfikator jest taki sam czy inny?