首页 > 解决方案 > 是导入动态还是静态

问题描述

在我的主脚本中,我导入了我自己的一个包含全局变量的模块。这个主脚本使用函数 exec 执行另一个脚本(exec(compile(open(Seq_1, "rb").read(), Seq_1, 'exec'))并且这个另一个脚本导入相同的模块。所以我的问题是:这些脚本是否可以访问相同的全局变量(这意味着如果我修改一个全局变量,另一个脚本将是影响)与否?

标签: pythonpython-3.x

解决方案


当您第一次导入文件时,Python 将运行您的文件。在第二次导入时,python 不会重新运行该文件。

在实践中,直接在模块上(不包含在类中)的 python 函数和变量就像单例一样工作。

这个答案对此进行了更多解释。您可以直接参考文档,也建议链接答案。


推荐阅读