2014-05-08 34 views
2

我正在使用Python腳本將某些子進程用於某些其他Python腳本。我需要確保Python子進程成功運行。有沒有關於在成功運行的Python腳本的最後exit(0)return 0更好的約定?退出0與返回0 Python首選項

我不認爲它從功能角度來說很重要,但我想知道是否是首選。

+0

我認爲'sys.exit(0)'更清晰,同時也檢出用於標準退出代碼的[errno](https://docs.python.org/2/library/errno.html)模塊。 – user3557327

+1

erm ... python不*具有'main'功能,因此您的選擇是調用'sys.exit'或* not *調用它。沒有'return 0'這樣的東西,因爲它會在函數外面引發'SyntaxError'。 – Bakuriu

回答

5

你將永遠使用sys.exit(exit_code)

return 0不會在系統級別中可以看出。

關注中(錯誤)代碼:

if __name__ == "__main__": 
    return 0 

是錯誤的,抱怨的最後一行,有獨立的return功能

外嘗試這不會抱怨,但不會被看到系統級:

def main(): 
    return 0 

if __name__ == "__main__": 
    main() 

正確的是:

import sys 

def main(): 
    sys.exit(0) 

if __name__ == "__main__": 
    main() 
+0

退出(0)vs sys.exit(0)很重要嗎? –

+1

@PhilBraun我總是隻看到'import sys'後面跟着'sys.exit(0)'。其他選項(我不記得看到)是從'sys import exit'退出,然後是'exit(0)'。但是你的問題讓我去測試,如果我可以在沒有從'sys'導入的情況下調用'exit'並且它真的有效(Python 2.7.6)。所以它可以工作,但我會建議使用'import sys',然後加上'sys.exit(code)'成語。 –