Python模块和退出(初学者层)

时间:2014-08-10 19:14:23

标签: python module

所以,我遇到了这个问题,我会试着解释一下:

#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'某些东西'”没有被解析。

1 个答案:

答案 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退出单个函数。