Python全局变量与
关键字:深入理解
在Python中,全局变量的使用常常让人感到困惑。本文将详细解释为什么有时访问全局变量不需要
关键字,而有时却必须使用它。
我们以一个包含全局变量
的例子来说明。代码中定义了一个全局变量
,并包含一个名为
的类,其
方法尝试访问和修改这个全局变量。
第一个例子:
方法只读取
的值,并没有修改它。这段代码可以正常运行,打印出
的内容,无需
关键字。这是因为Python在局部
作用域
找不到变量时,会自动到全局作用域中查找。
立即学习
“
Python免费学习笔记(深入)
”;
Python 3.14.3
微软官方的 Python 扩展,是 VS Code 安装量最高的扩展(209M+)。集成 IntelliSense(通过 Pylance)、调试(通过 Python Debugger)、代码检查、格式化、重构和单元测试等功能。支持 Jupyter Notebook、虚拟环境管理和多 Python 版本切换。
下载
第二个例子:
方法读取
后,试图通过
来修改它。这时,Python解释器将
视为一个局部变量,因为它在方法内部被重新赋值。由于在赋值前就尝试读取
,导致程序抛出
错误,提示局部变量
在赋值前就被引用。
第三个例子:在
方法内部添加了
语句。这明确告诉解释器,
指的是全局变量,而不是局部变量。因此,修改操作能够成功执行,最终打印出修改后的
。
总结:关键在于是否修改全局变量。如果只是读取全局变量的值,Python会自动在全局作用域查找,不需要
关键字;但如果需要修改全局变量的值,则必须使用
关键字声明,告知解释器该变量是全局变量,避免将其误认为局部变量。
globalglobalsuccess_listsuccess_listMyClassrunrunsuccess_listsuccess_listglobalrunsuccess_listsuccess_list = success_list[1:]success_listsuccess_listUnboundLocalErrorsuccess_listrunglobal success_listsuccess_listsuccess_listglobalglobal