TGViewer
Python: задачки и вопросы Python: задачки и вопросы @quiz_python · 6.94K subscribers
Post #4717 988
В отличие от предыдущей задачи, в этой есть одно важное изменение, которое меняет правильный ответ.

По шагам:


1️⃣Интерпретатор анализирует тело функции func и замечает операцию x += 1 (которая включает в себя присваивание).

2️⃣Переменная x сразу помечается как локальная для всей функции, полностью перекрывая доступ к глобальной переменной x = 1.

3️⃣При вызове функции первая строка print(x) пытается прочитать локальную x.

4️⃣Так как до выполнения x += 1 локальная переменная еще не инициализирована значениями, возникает исключение UnboundLocalError.

Почему это важно
Это неочевидное проявление лексической области видимости. Если нужно только прочитать глобальную переменную внутри локальной области, проблем не возникнет. Но для её изменения потребуется явно указать global x в начале функции.
  • ✍ 4
More from @quiz_python
  1. Sep 14, 2026А вы уже забрали свой подарок ко Дню программиста? Мы в Tproger вместе с нашими друзьями с…
  2. Aug 30, 2026Развёрнутое пояснение: 1. Создаётся список batch с двумя разными словарями. 2. Вызов enric…
  3. Aug 30, 2026Post #4875
  4. Aug 30, 2026Развёрнутое пояснение: 1. Создаётся внутренний список ['', '', ''] — три пустые строки. 2.…
  5. Aug 30, 2026Post #4873
  6. Aug 29, 2026Развёрнутое пояснение: 1. Декоратор dataclass(frozen=True) генерирует для Client методы __…
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 →