help ('nonlocal') Оператор
nonlocal
nonlocal_stmt ::= "nonlocal" identifier ("," identifier)*
Оператор
nonlocal
заставляет перечисленные идентификаторы ссылаться на ранее связанные переменные в ближайшей закрывающей области , Это важно, потому что поведение по умолчанию для привязки - это сначала поиск в локальном пространстве имен. Оператор позволяет инкапсулированному коду перегруппировать переменные за пределами локальной области, кроме глобальной (модульной) области.Имена, перечисленные в инструкции
nonlocal
, в отличие от тех, которые указаны в инструкцииglobal
, должны ссылаться к существующим привязкам в охватывающей области (область, в которой необходимо создать новое связывание, не может быть однозначно определена).Имена, перечисленные в операторе
nonlocal
, не должны сталкиваться с ранее существующими привязками в Локальная область.См. также:
PEP 3104 - Доступ к именам во внешних областях Спецификация оператора
nonlocal
.Связанные разделы справки: global, NAMESPACES
Источник: Справочник по языку Python