nonlocal 声明外层非全局变量

最后更新:2026-09-22

nonlocal 声明外层非全局变量

nonlocal name 告诉函数体内 name 引用最近外层(但非全局)作用域的变量。

分类关键字与语句
类型关键字与语句
Python 版本all

📝 语法

nonlocal name [, name]*

▶ 示例

编辑下方代码,点击运行,在输出面板查看结果:

运行结果:

1 2
更多实战案例即将上线,敬请期待。

❓ 常见问题

Q嵌套函数里不写 nonlocal 直接改外层变量会怎样?
A会在内层函数创建同名的局部变量,外层变量的值不会变,甚至可能报 UnboundLocalError。想要修改外层变量,必须先用 nonlocal 声明。
Qnonlocal 能指向全局变量吗?
A不能。nonlocal 必须绑定到某个外层函数作用域里已存在的变量;如果外层根本没有这个变量,会报 SyntaxError: no binding for nonlocal 'x' found。
Qnonlocal 和 global 能同时用吗?
A能,但只能针对不同的名字。同一个名字不能同时声明为 global 和 nonlocal,那样会报 SyntaxError。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

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

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