nonlocal Nonlocal declaration

Last updated: 2026-09-22

nonlocal Nonlocal declaration

nonlocal name refers to the nearest enclosing scope's variable (not global).

CategoryKeywords & Statements
KindKeyword / Statement
Python Versionall

📝 Syntax

nonlocal name [, name]*

▶ Example

Edit the code, press Run, and see the result in the output panel:

Output:

1 2
More case studies coming soon — check back later.

❓ FAQ

QWhat happens if I modify an outer variable inside a nested function without `nonlocal`?
AIt creates a same-named local variable in the inner function; the outer variable's value is unchanged, and you may even get `UnboundLocalError`. To modify the outer variable, you must declare `nonlocal` first.
QCan `nonlocal` point to a global variable?
ANo. `nonlocal` must bind to a variable that already exists in some enclosing function scope. If there is no such variable, you get `SyntaxError: no binding for nonlocal 'x' found`.
QCan `nonlocal` and `global` be used together?
AYes, but only for different names. The same name cannot be declared both `global` and `nonlocal`; doing so raises a `SyntaxError`.
Web-Tutorial.com

Web-Tutorial Tech Team

A team of developers maintaining programming tutorials. Each tutorial is written and reviewed by developers with expertise in that field. We work to keep our content accurate and reliable — if you spot an issue, please let us know.

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏