中止在Python中执行模块
问题内容:
我想停止对正在导入的模块进行评估,而不停止整个程序。
这是我要实现的示例:
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
问题答案:
没有停止模块执行的好方法。您可以引发一个异常,但是导入模块将需要处理它。也许只是这样重构:
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()