Python中不盡如人意的斷言Assertion

Python Assert 為何不盡如人意

Python中的斷言用起來非常簡單,你可以在assert后面跟上任意判斷條件,如果斷言失敗則會拋出異常。

>>> assert 1 + 1 == 2 >>> assert isinstance('Hello', str) >>> assert isinstance('Hello', int)

Traceback (most recent call last):
  File "<input>", line 1, in <module> AssertionError

其實assert看上去不錯,然而用起來并不爽。就比如有人告訴你程序錯了,但是不告訴哪里錯了。很多時候這樣的assert還不如不寫,寫了我就想罵娘。直接拋一個異常來得更痛快一些。

改進方案 #1

一個稍微改進一丟丟的方案就是把必要的信息也放到assert語句后面,比