Python 一个文件就是一个变量空间吗?

我们知道Python,一个文件就是一个模块,那么是否是一个变量空间呢?

阅读 1.8k
2 个回答

变量空间更准确的叫法是:名字空间,Python名字空间是作用域的运行时表现,作用域由语法静态决定。Python名字空间不止一个:

  • 局部名字空间,例如函数局部变量;
  • 闭包名字空间,例如闭包函数变量;
  • 全局名字空间,例如全局变量;
  • 内建名字空间,例如dir等内建函数;

Python全局名字空间是模块级别的,模块外只能通过模块属性的方式进行访问,例如:re.findall 。Python虚拟机在运行时,通过一个字典对象维护模块属性空间,模块内的全局变量也在这个字典中查找。因此,模块的属性空间字典同时也是模块全局名字空间。

更多关于Python执行机制以及虚拟机实现细节,可以参考我写的专栏:Python源码深度剖析

一个文件就是一个模块(module),你说的其实不算错吧……

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题