assert
>>> assert 1==1
>>> assert 1==0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionError
從上面的舉例中可以基本了解了 assert 的特點(diǎn)。
assert育谬,翻譯過(guò)來(lái)是“斷言”之意演熟。assert 是一句等價(jià)于布爾真的判定,發(fā)生異常就意味著表達(dá)式為假霸褒。
assert 的應(yīng)用情景就有點(diǎn)像漢語(yǔ)的意思一樣伴找,當(dāng)程序運(yùn)行到某個(gè)節(jié)點(diǎn)的時(shí)候,就斷定某個(gè)變量的值必然是什么废菱,或者對(duì)象必然擁有某個(gè)屬性等技矮,簡(jiǎn)單說(shuō)就是斷定什么東西必然是什么,如果不是殊轴,就拋出錯(cuò)誤衰倦。
如果沒有特別的目的,斷言應(yīng)該用于如下情況:
- 防御性的編程
- 運(yùn)行時(shí)對(duì)程序邏輯的檢測(cè)
- 合約性檢查(比如前置條件旁理,后置條件)
- 程序中的常量
- 檢查文檔
Python斷言使用的最佳時(shí)機(jī):http://www.oschina.net/translate/when-to-use-assert