所以最近我一直在問Python關於更多專業和pythonic風格的問題,儘管我的問題給出了很好的答案,但我覺得我需要提出一個更廣泛的問題。通常,在編寫處理副作用(文件寫入,字典定義等)而不是返回值的效用函數(對於庫等)時,返回狀態代碼以告訴調用它通過或失敗的函數。Python返回代碼
在Python,似乎有三種方式來標記此:
使用的-1或0(C等)的返回值,並使用語句如
if my_function(args) < 0:
fail condition
pass condition
,或者使用一回真值/假
if not my_function(args):
fail condition
pass condition
,或者使用「回報或‘返回None’使用異常(未知錯誤退出)
try:
my_function(args)
except ExpectedOrKnownExceptionOrError:
fail condition
pass condition
哪個最好?最正確的?首選?我理解所有的工作,並且沒有太多的技術優勢(除了可能的異常處理的開銷)。
+1,這樣做會很... C++。 – 2rs2ts
是的,這是EAFP的方法,在Python中很常見。類似C的方法在這裏可能是最糟糕的,但最終,這一切都取決於圖書館的確切目標,以及在常見用法方面更一致。 – Tadeck
好的,這是我的問題。如果我的論點不符合功能要求,我應該只是拋出一個基本的異常?像 如果數據<0: 引發異常('bad input') –