Рассмотрим следующее:
>>> 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],)
>>>
Я понимаю, что кортежи неизменяемы, но элемент в LHS не является кортежем! (Тот факт, что предполагаемое назначение фактически преуспело, несмотря на сообщение об ошибке, делает весь сценарий более причудливым.)
Почему это поведение не считается ошибкой?