TGViewer
Python вопросы с собеседований Python вопросы с собеседований @python_job_interview · 24.9K subscribers
Post #1502 2.48K
Что выведет код?


t = ([],)

try:
t[0] += [1]
except TypeError as e:
print("Ошибка:", type(e).__name__)

print(t)


Многие думают:


Ошибка: TypeError
([],)


Но Python выведет:


Ошибка: TypeError
([1],)


Почему?

`t` — tuple, его нельзя менять.

Но внутри tuple лежит список, а список менять можно.

Оператор `+=` сначала мутирует список:

```python
[] -> [1]
```

А потом Python пытается записать результат обратно в tuple:

```python
t[0] = ...
```

И вот тут падает `TypeError`.

Итог странный: ошибка была, но данные уже изменились.

Главный урок:

immutable-контейнер не делает вложенные объекты immutable.

Если внутри tuple лежит list, этот list всё ещё можно изменить.
  • 👍 13
  • 🔥 1
  • 👌 1
More from @python_job_interview
  1. Sep 19, 2026✔️ Кто подключился к вашей сети? NetAlertX обнаруживает устройства и уведомляет об изменен…
  2. Sep 18, 2026✔️ QuiverAI выпустила обновление генератора векторной графики Во второе поколение семейств…
  3. Sep 17, 2026📚 Бесплатная книга по математике для Computer Science и Machine Learning - более 2200 стр…
  4. Sep 15, 2026🐍 Python: как найти изменённое поле во вложенном словаре Сравнение before == after покаже…
  5. Sep 15, 2026🔥 Один из лучших обучающих курсов на StepiK по SQL SQL можно знать годами и всё равно тер…
  6. Sep 13, 2026🐍 Python: type(x) == str или isinstance(x, str)? На первый взгляд разницы почти нет. Но о…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →