凡是用print()來輔助查看的地方,均可以用斷言(assert)來替代python
使用assert和print()均可以打印信息,可是assert的好處就是若是不想輸出信息到控制檯時,能夠經過設定參數-O的方式來禁止輸出信息spa
而print()卻只能經過註釋的方式來禁止輸出code
使用斷言
若是斷言失敗,assert語句自己就會拋出AssertionErrorblog
def foo(s): n = int(s) assert n != 0,'n is zero!' #assert的意思是,表達式n != 0應該是True,不然,根據程序運行的邏輯,後面的代碼確定會出錯 return 10 / n def main(): foo('0') main() #輸出; Traceback (most recent call last): ... AssertionError: n is zero!
關閉斷言
程序中若是處處充斥着assert,和print()相比也好不到哪去。不過,啓動Python解釋器時能夠用-O參數來關閉assert
斷言關閉後,你能夠把全部的assert語句當成pass來看io
python -O err.py #:斷言的開關「-O」是英文大寫字母O,不是數字0