中止在Python中执行模块

发布于 2021-01-29 16:27:30

我想停止对正在导入的模块进行评估,而不停止整个程序。

这是我要实现的示例:

main.py

print('main1')
import testmodule
print('main2')

testmodule.py

print(' module1')
some_condition=True
if some_condition:
  exit_from_module()  # How to do this?
print(' module2')     # This line is not executed.

预期产量:

main1
 module1
main2
关注者
0
被浏览
50
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    没有停止模块执行的好方法。您可以引发一个异常,但是导入模块将需要处理它。也许只是这样重构:

    print(' module1')
    some_condition = True
    if not some_condition:
      print(' module2')
    

    更新:最好将模块更改为仅定义函数和类,然后让调用者调用其中之一来执行所需的工作。

    如果您真的想在导入期间完成所有这些工作(请记住,我认为最好不要这样做),则可以将模块更改为:

    def _my_whole_freaking_module():
        print(' module1')
        some_condition = True
        if some_condition:
            return
        print(' module2')
    
    _my_whole_freaking_module()
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看