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

2024-04-20 10:01:20 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我有这个问题,我会尽力解释:

#file1.py
    def main()
     if 1 != a:
       print "error"
       exit(1)
     else:
       print "sucess"

所以我把这个“file1.py”导入了“file2.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‘something’”没有被解析。你知道吗


Tags: pyimportifmaindefexiterrorfile1
1条回答
网友
1楼 · 发布于 2024-04-20 10:01:20

你永远无法到达print "something"control设置为2(整数),但如果将其与"2"(字符串)进行比较,则应改用control == 2。你知道吗

一旦修复了这个问题,甚至可以调用main("2")。这将抛出一个错误,因为main函数不带参数。此外,a未在main中定义(如果希望a作为函数参数,请使用def main(a):而不是def main():

然后,如果a等于1(同样是整数,而不是字符串),它将调用exit,它退出整个python脚本,包括file2.py中的内容,除非您碰巧捕获了SystemExit,而您不应该这样做。这就是exit的目的。尝试return退出单个函数。你知道吗

相关问题 更多 >