673просмотров
8.0%от подписчиков
7 марта 2026 г.
Score: 740
Разбор по шагам 1️⃣Выражение t[1] += [3] под капотом разбивается на две операции: t[1].iadd([3]) и последующее присваивание t[1] = ... 2️⃣Первый шаг выполняется успешно — метод iadd мутирует список на месте, и он становится [2, 3]. 3️⃣Второй шаг (присваивание обратно по индексу) бросает TypeError, так как кортежи неизменяемы. 4️⃣Ошибка перехватывается блоком except, где выводится строка 'Error ' без перехода на новую строку. 5️⃣Выполнение продолжается, и print(t) выводит кортеж с уже изменённым списком: (1, [2, 3]). Почему это важно
Пример наглядно показывает, почему хранение мутабельных объектов (списков) внутри иммутабельных (кортежей) — плохая архитектурная практика. Операции над ними могут вызывать ошибки, но при этом оставлять данные в изменённом (грязном) состоянии.