【问题标题】:Python how to exit main function [duplicate]Python如何退出主函数[重复]
【发布时间】:2011-04-18 11:14:54
【问题描述】:

可能的重复:
Terminating a Python script
Terminating a Python Program

我的问题是如何在 Python 主函数中退出?我试过'return',但它给出了错误SyntaxError: 'return' outside function。任何人都可以帮忙吗?谢谢。

if __name__ == '__main__':
  try:
    if condition:
    (I want to exit here) 
    do something
  finally:
    do something

【问题讨论】:

  • 当你搜索你发现了什么? stackoverflow.com/search?q=%5Bpython%5D+exit。所有这些似乎都有一些共同点。
  • 我认为人们忽略了这个问题的重点。 OP 不是在寻找终止程序的通用方法。他想知道为什么在这种情况下,return 不能用于此目的。
  • 这个对相关问题的回答似乎在这里stackoverflow.com/a/953385/86967 最有用。

标签: python


【解决方案1】:

使用系统模块

import sys
sys.exit()

【讨论】:

    【解决方案2】:

    致电sys.exit

    【讨论】:

      【解决方案3】:

      您无法返回,因为您不在函数中。不过你可以exit

      import sys
      sys.exit(0)
      

      0(默认)表示成功,非零表示失败。

      【讨论】:

      • 为什么要sys.exit() 而不是普通的exit()
      • 为什么不呢?此外,Python 尽量不提供过多的内置函数。
      • @Just,docs 说不要在程序中使用普通的exit,而且可以说你甚至可以使用bug(尽管是 WONTFIX)。
      【解决方案4】:

      你可以使用sys.exit()从主函数中间退出。

      但是,我建议不要在那里做任何逻辑。相反,将所有内容放在一个函数中,然后从 __main__ 调用它 - 然后您可以正常使用 return。

      【讨论】:

      • +1 用于添加明确的“一切”功能。这也使得 (1) 从其他脚本调用此脚本 (2) 单元测试更容易。
      • Guido van Rossum 支持(或至少习惯于)这种方法:artima.com/weblogs/viewpost.jsp?thread=4829
      • 我通常会创建一个名为“main”的函数并将其放在文件的顶部。
      • exit() 对我来说很好,使用 python 2.7.x
      【解决方案5】:

      如果你不想导入任何东西,你可以试试:

      raise SystemExit, 0
      

      【讨论】:

      • 如果有人想扩展 main 而不是在它的末尾退出,这能被抓住吗?
      猜你喜欢
      • 1970-01-01
      • 2013-05-13
      • 2020-11-28
      • 1970-01-01
      • 2019-07-05
      • 2019-08-18
      • 2011-02-07
      • 1970-01-01
      • 2018-11-26
      相关资源
      最近更新 更多