Русский
Открыть в Telegram

Пост ✈️Сегодня разберём тему, которая частенько вызывает головную боль даже у опытных разработчиков — области видимости перем…

17 апреля 2025
P
Pythoner
Фотография
✈️Сегодня разберём тему, которая частенько вызывает головную боль даже у опытных разработчиков — области видимости переменных и ключевые слова global и nonlocal. ➡️В чём суть? Представьте, что вы пишете функцию внутри функции и вам нужно изменить переменную "снаружи". Без special words Python скажет: "Неа, не получится!" ➡️Как это работает? Global: x = 5 # глобальная переменная def change_x(): global x # говорим Python, что хотим менять глобальную x x = 10 # теперь работает! change_x() print(x) # выведет 10 Nonlocal: def outer(): counter = 0 # переменная внешней функции def inner(): nonlocal counter # хотим менять counter из outer counter += 1 # работает! inner() print(counter) # выведет 1 outer() ⚡️Важные моменты: - Global можно использовать для создания новых переменных - Nonlocal работает только с существующими переменными - В Python 3.13 пофиксили баги с global в блоках else и except ➡️Типичные ошибки: Неправильно: def bad_function(): print(x) # ошибка! global x # global нужно объявлять до использования x = 10 Правильно: def good_function(): global x print(x) # теперь всё ок x = 10 ➡️Полезные инструменты: Чтобы проверить, какие переменные у вас есть: print(globals()) # все глобальные переменные print(locals()) # все локальные переменные 💡Практические советы: - Используйте global только когда действительно необходимо - Nonlocal отлично подходит для счетчиков и аккумуляторов - Всегда документируйте использование global и nonlocal в комментариях - Старайтесь минимизировать использование глобальных переменных 🐍 Pythoner
23 · 1.9K ·

Рядом в ленте

PPythoner🤔Разбор Атрибуты класса (count) являются общими для всех экземпляров класса. Метод __del__ вызывается автоматически, когда объект уничтожается (например, после PPythoner✈️Astropy — это мощная библиотека Python, предназначенная для астрономических вычислений и анализа данных. Она предоставляет инструменты для работы с астрономич
это сообщение
PPythoner✈️SymPy — это библиотека Python для символьных вычислений. Она предоставляет инструменты для работы с математическими выражениями, включая алгебру, исчисление,

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем