2016-03-05 66 views
5

我在一個python腳本的全部位置返回0,但寧願更多的語義,更可讀的東西。我不喜歡那個神奇的數字。 python中有沒有一個想法與C相似,你可以返回EXIT_SUCCESS而不是0?python是否有一個EXIT_SUCCESS常量?

我無法在這裏找到: https://docs.python.org/3.5/library/errno.html

+0

只需'return'。 –

+0

爲什麼你需要一個?如果你的函數失敗,*引發錯誤*。 – jonrsharpe

+0

使用'return'語句本身將返回'None ',意味着你打算使用返回的'None'值,完全省略'return'語句仍然會返回'None',但是隻能在你不打算使用返回的None值的時候使用。 – gtlambert

回答

5

我回0

return是不是你設置在Python腳本的退出代碼。如果您想以退出碼0退出,請讓腳本正常完成。退出代碼將自動設置爲0.如果要退出時使用不同的退出代碼,則需要使用sys.exit

如果您在代碼中使用0或1的返回值來指示函數是成功還是失敗,這是一個壞主意。如果出現問題,您應該提出適當的例外。

0

由於您在此討論return,您似乎可能會像C一樣對Python進行編程。大多數Python函數應該編寫爲在異常失敗時引發異常,並且調用代碼可以確定如何處理異常條件。對於驗證功能,最好返回TrueFalse--通常不是文字,而是s.isdigit()等表達式的結果。

當談到進程返回值到其環境中時,您使用return因爲模塊不是函數,因此頂級語句return將被標記爲語法錯誤。相反,你應該使用sys.exit

Python在這方面似乎有點簡約,但沒有參數默認爲成功(,即返回代碼0)的sys.exit的調用。因此,簡化程序的最簡單方法可能是停止使用不想表示失敗的參數進行編碼!

由於the documentation提醒我們,整數參數被傳回,字符串參數導致返回代碼爲1,並且字符串被打印到stderr

據我所知,該語言並不包含任何常量(雖然它具有特定於某些環境的功能,但如果它提供了退出代碼,則它們的值可能需要實現或特定於平臺,而語言開發人員寧願儘可能避免這種情況。

相關問題