变量空间更准确的叫法是:名字空间,Python名字空间是作用域的运行时表现,作用域由语法静态决定。Python名字空间不止一个: 局部名字空间,例如函数局部变量; 闭包名字空间,例如闭包函数变量; 全局名字空间,例如全局变量; 内建名字空间,例如dir等内建函数; Python全局名字空间是模块级别的,模块外只能通过模块属性的方式进行访问,例如:re.findall 。Python虚拟机在运行时,通过一个字典对象维护模块属性空间,模块内的全局变量也在这个字典中查找。因此,模块的属性空间字典同时也是模块全局名字空间。 更多关于Python执行机制以及虚拟机实现细节,可以参考我写的专栏:Python源码深度剖析
变量空间更准确的叫法是:名字空间,Python名字空间是作用域的运行时表现,作用域由语法静态决定。Python名字空间不止一个:
Python全局名字空间是模块级别的,模块外只能通过模块属性的方式进行访问,例如:re.findall 。Python虚拟机在运行时,通过一个字典对象维护模块属性空间,模块内的全局变量也在这个字典中查找。因此,模块的属性空间字典同时也是模块全局名字空间。
更多关于Python执行机制以及虚拟机实现细节,可以参考我写的专栏:Python源码深度剖析