Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
218 views
in Technique[技术] by (71.8m points)

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

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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

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

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

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
...