Перечитываю Лутца в части областей видимости и инструкциий global и nonlocal. Порядочно он выделил на них объема. Никогда не пользовался этими инструкциями. Решил проверить а как обстоит дело с их использованием у разработчиков — в виртуальном окружении около 200 пакетов. Ввел nonlocal в поиск по файлам и обнаружил, что среди такого количества библиотек всего в одном или двух файлах авторы все-таки решились на их использование. Я так прикинул, что примерно на 10К файлов всего одна-две таких инструкции и это без учета объема кода в самих файлах. Лутц пишет, что nonlocal введена в Python 3. Задаюсь вопросом — зачем? В целом понятно зачем, Лутц все разжевал, но вопрос "зачем" остается — эту возможность почти не используют.