我不確定我的問題有一個具體的答案,但無論如何。我正在編寫一個有很多參數的函數,每個函數都可以是None
或者有一個有限的值範圍。由於我不相信用戶給我很好的輸入,我必須檢查每個參數的類型,如果它的類型正確(或None
),那麼我想看看它是否在正確的範圍內。這意味着我有這樣大量的代碼:Python中的邏輯參數檢查
# size
if isinstance(size, str):
if size in range(4):
self.data[uid]['size'] = int(size)
else:
warnings.warn("ID %s: illegal size %s" % (uid, size))
self.data[uid]['size'] = None
elif size == None:
self.data[uid]['size'] = None
else:
warnings.warn("ID %s: illegal size %s" % (uid, str(size)))
self.data[uid]['size'] = None
等。這是成爲重複的,我想知道是否有可能是會自動執行此,拋出異常/警告,並減少代碼冗餘庫。
感謝
`我必須檢查每個參數的類型`聽起來像你做錯了。你應該只用它作爲預期的類型,然後捕捉失敗。 – Falmarri 2011-01-19 22:03:21
我曾經認爲我也必須檢查輸入。當我停止這樣做時,編程變得更加容易。假設沒關係,並處理錯誤。這與python成語「容易要求寬恕而不是權限」有關。 – Wilduck 2011-01-19 22:07:46