1
使用assert
,你可以很容易地測試一個條件,而無需一個if/raise
:蟒蛇:使用斷言,以提高不同的錯誤類型
assert condition, msg
相同
if not condition:
raise AssertionError(msg)
我的問題是,它是否是可以使用assert
來提高不同類型的Errors
。例如,如果缺少特定的環境變量,找回EnvironmentError
將很有用。這可以手動完成或者是try/catch
或類似if/raise
像以前一樣:
if not variable in os.environ:
raise EnvironmentError("%s is missing!" % variable)
或
try:
assert variable in os.environ
except:
raise EnvironmentError("%s is missing!" % variable)
但我不知道是否有某種類型的快捷方式,我一直沒能夠找到,或者是否有一些解決方法可以使堆棧中有多個except
。
Assert是一個調試時間功能,可以使用特殊的命令行標誌禁用或啓用。你可以編寫一個版本來做你需要的功能,接受一個可選的錯誤類。不過,我通常會建議純粹寫它,而不是將它委託給一個函數,這聽起來像是清理代碼而不是開發斷言 –