我有一个我正在导入的模块(我编写并可以自由编辑),我希望能够在将导入视为成功的同时中途停止执行。不幸的是,如果我在导入期间引发异常,则模块未成功导入且不可用。是否可以通过调用类似于if ...:
的内容来中止执行(例如,不在sys.exit()
块中包装后续代码)? sys.exit()
无效,因为它会引发SystemExit
,导致导入失败。
答案 0 :(得分:0)
与其他语言不同,模块级别(即函数外部)不允许return
。
正如您所发现的,提出异常不是一个好的解决方案。
替代解决方案包括:
将剩余代码包装在if
。
将主代码包装在函数中,并使用return
在某个时刻中断它。
将主要代码包装在for
:
for _ in [0]:
always_executed()
if some_condition: break
sometimes_executed()
break
不是最好的可读性(由于for
有点误导)。
我更喜欢main()
函数或if:
。