global объявляет переменную как глобальную — берётся из модульного scope. nonlocal — из ближайшего enclosing scope (замыкание). Без этих ключевых слов Python при присваивании создаёт новую локальную переменную, а не модифицирует внешнюю. global x позволяет функции менять модульную переменную. nonlocal x — переменную из внешней функции (closure). В целом, оба — антипаттерн: global усложняет отладку, лучше передавать через аргументы. nonlocal иногда оправдан в замыканиях.
В чём разница между global и nonlocal?
Middle
199 просмотровAFK Offer AI
Что такое Faker?