Rozważmy następujący:Puzzling „«krotki»obiekt nie obsługuje przypisanie pozycji” błąd
>>> t = ([],)
>>> t[0].extend([12, 34])
>>> t
([12, 34],)
>>> t[0] += [56, 78]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> t
([12, 34, 56, 78],)
>>>
Rozumiem, że krotki są niezmienne, ale pozycja w LHS nie jest krotką! (Fakt, że zamierzone przypisanie się udało, mimo to komunikat o błędzie powoduje, że cały scenariusz jest tylko dziwniejszy.)
Dlaczego to zachowanie nie jest uważane za błąd?
Dlaczego ludzie zawsze przychodzą do SO z pytaniem przed przejściem do FAQ Pythona? W dziale FAQ uzyskasz odpowiedź, która została przemyślana, skrupulatnie napisana i sprawdzona przez wielu programistów i przetrwała próbę czasu. Na SO otrzymujesz odpowiedź, że ktoś klika razem w 5 minut, edytuje wielokrotnie przez następne 5 minut, a potem porzuca na resztę czasu. Czy nie wolałbyś tego pierwszego? – abarnert
@abarnert, ponieważ istnieje nieskończona liczba sposobów zadawania pytań, a wyniki google/stackoverflow przechwytują znacznie więcej niż wyszukiwanie w python.org. SO rzuca najszerszą sieć pytań, a gdy się nie powiedzie, zadanie pytania jest zwykle nagradzane szybką odpowiedzią i punktami. W wielu przypadkach powiązane są inne lepsze zasoby, więc ludzie zostaną zwróceni do najlepszego źródła odpowiedzi. – dansalmo