通常每一門(mén)編程語(yǔ)言都有自己斷言語(yǔ)句意狠,以方便出錯(cuò)調(diào)試烟央,Python 自然也不例外秒裕。
Python 中的斷言是 assert
速梗,其格式如下:
assert expression [, arguments]
其中 expression
是必填的條件表達(dá)式,arguments
是可選參數(shù)版述,用于在斷言被觸發(fā)的時(shí)候輸出相關(guān)信息梯澜。當(dāng) expression
值為 False
的時(shí)候?qū)⒂|發(fā)斷言,中斷程序院水,所以它和以下代碼段的功能相似:
if not expression:
raise AssertionError()
不過(guò)需要注意的一點(diǎn)是腊徙,assert
在 Python 3 中只是聲明,所以如果寫(xiě)成:
assert(False, "Error")
這種形式檬某,斷言將永遠(yuǎn)不會(huì)被觸發(fā)撬腾。因?yàn)榇藭r(shí) assert
的 expression
參數(shù)是內(nèi)容為 (.., ..)
的 Tuple
,而 Tuple
只有在內(nèi)容為空的時(shí)候才會(huì)被判斷為 False
恢恼。
所以正確的寫(xiě)法是:
>>> assert False, "Error"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionError: Error