我们如何改变目前__main__



假设我们执行script_1 .所以,script_1 __main__.但是,script_1script_2导入一些类。当我们进入script_2保存旧的__main__上下文时,有没有办法script_2新的__main__,并在回到script_1之前恢复旧的上下文?

重要提示:我同意这些评论。您需要这样做是非常可疑的

对于这项运动,这里有一种方法可以使用importlib来完成您的要求:

script_2.py:

if __name__ == '__main__':
    print('script_2 is the main!')

script_1.py:

import importlib.util
spec = importlib.util.spec_from_file_location('__main__', 'script_2.py')
mod = importlib.util.module_from_spec(spec)
spec.loader.exec_module(mod)
if __name__ == '__main__':
    print('script_3 is the main!')

最后

python script_1.py
> script_2 is the main!
> script_1 is the main!

相关内容

  • 没有找到相关文章

最新更新