Какие области видимости есть в Python?

Для обычных функций действует поиск LEGB: local, enclosing, global, builtins. global и nonlocal управляют тем, к какому связыванию относится присваивание; блоки if и for обычно не создают отдельный scope.

Короткий ответ

Что ответить на собеседовании

Для обычных функций действует поиск LEGB: local, enclosing, global, builtins. global и nonlocal управляют тем, к какому связыванию относится присваивание; блоки if и for обычно не создают отдельный scope.

Подробный разбор

Ответ с пояснениями

Для обычных функций действует поиск LEGB: local, enclosing, global, builtins. global и nonlocal управляют тем, к какому связыванию относится присваивание; блоки if и for обычно не создают отдельный scope.

Присваивание имени внутри функции делает его локальным, если не объявлено иначе, что может привести к UnboundLocalError при чтении до присваивания. Области классов, comprehensions и аннотаций имеют дополнительные особенности. Поэтому LEGB — полезная базовая модель, но не объяснение любого возможного контекста. На примере всегда уточняйте, где объявлены и изменяются имена.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее