所以,我遇到了这个问题,我会试着解释一下:
#file1.py
def main()
if 1 != a:
print "error"
exit(1)
else:
print "sucess"
所以我在“file2.py”中导入了这个“file1.py”
#file2.py
import file1
control=2
try:
while True:
if control == "2":
main("2")
print "something"
except:
print "error"
因此,出于某种原因,“python1”中的“exit(1)”在我调用main(“2”)之后退出我的代码“python2”并且“print'某些东西'”没有被解析。
答案 0 :(得分:4)
你永远不会到print "something"
。 control
设置为2
(整数),但您将其与"2"
进行比较,这是一个字符串,您应该使用control == 2
。
修复后,main("2")
的呼叫甚至可能发生。这将引发错误,因为您的main
函数不带参数。此外,a
中未定义main
(如果您希望a
成为函数参数,请使用def main(a):
代替def main():
然后,如果a
等于1
(再次,整数,而不是字符串),它将调用exit
,退出整个python脚本,包括file2.py
中的内容,除非您碰巧抓住{<1}},不应该。这就是SystemExit
的用途。请尝试exit
退出单个函数。