斷言語句的格式
assert test, [msg]
test是一個表達式,表達式求值為Fals
時引發AssertionError異常,msg是可選的異常消息。
def test_assert(a):
"""
當輸入的參數不大於0時斷言拋出異常
"""
assert a > 0, 'a需要大於0'
print('a=', a)
test_assert(-10)
運行test_assert(-10)程序將拋出異常:
Traceback (most recent call last):
File "M:/project/untitled1/testdatetime.py", line 788, in
main()
File "M:/project/untitled1/testdatetime.py", line 303, in main
test_assert(-10)
File "M:/project/untitled1/testdatetime.py", line 293, in test_assert
assert a > 0, 'a需要大於0'
AssertionError: a需要大於0
斷言使用注意
- 斷言只能作為輔助調試手段使用,在表達式為False時拋出異常終止程序執行,不能在程序中代替條件判斷語句,因為程序以優化方式運行時不會執行斷言語句。
- 添加-O參數程序運行在優化模式,不會輸出斷言
python -O main.py