Python中的变量是计算机内存中对象的符号名称。Python基于命名空间的概念来定义各种标识符(如函数、变量等)的上下文。命名空间是当前上下文中定义的符号名称的集合。
Python提供了以下类型的命名空间:
全局命名空间?包含在主程序中定义的任何名称。这些名称在程序运行期间一直存在于内存中。
局部命名空间?包含在函数内部定义的名称。它们在函数运行期间可用。
这些命名空间是相互嵌套的。下图显示了命名空间之间的关系。
Python的标准库包括一个内置函数globals()。它返回当前全局命名空间中可用的符号字典。
Python的标准库包括一个内置函数locals()。它返回函数命名空间中当前可用的符号字典。
如果全局范围和局部范围中都存在同名变量,Python解释器会优先选择局部命名空间中的变量。