exec有着和import类似的效果,但是它从技术上不会导入模块,每次以这种方式调用exec的时候,都会重新运行文件,像在调用它的地方粘贴了代码一样,对于当前正在使用的变量有潜在的默认覆盖的可能(如第二张图所示),但是import不会如此,每个进程只会运行文件一次,并且把文件生成到一个单独的模板名称空间去,它的赋值不会改变原有作用域中的变量,但是付出的代价是,当import的模块在调用完import后被修改了,需要调用reload方法重载。
import sys
print(sys.platform)
x = 'span'
print(x*8) 为script1脚本里面的内容
该图里面x的内容变为script脚本里面x值
import和exec运行模块文件的异同(来源于书籍 python学习手册)
最新推荐文章于 2022-09-07 08:21:42 发布