Pythonのアサーション(assert)

http://d.hatena.ne.jp/JavaBlack/20130324/p1#20130324f7 を読んでいつものようにドキリとしたことに加え、昨日たまたまUnitテストについて少し書いたので、今日はアサーションについて。

>>> def add(num):
...     assert isinstance(num, int)
...     return num + 1
... 
>>> add(3)
4
>>> add(0.5)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in add
AssertionError


ちなみに、AssertionError発生時にメッセージも出せる。

>>> def add(num):
...     assert isinstance(num, int), "type error"
...     return num + 1
... 
>>> add(0.5)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in add
AssertionError: type error


「カレーなる辛口Javaな転職日記」で突っ込みが入る記事に共通しているのは、
自分の身の回りでの慣習(だいたい古い・イケてない)を一般的な事実のように書いていることだと思う。

愚者は経験から〜とよく言うが、身の回りの出来事だけで結論をだすのはやはりまずい。
もっとよくできるんじゃねーの?という欲求は常に持って、少し離れたところもキョロキョロし続けたいなぁ。

あと基本的な情報はしっかりしたソース(ちゃんとした本etc)から得ること。
少しでもドキリとしたら大急ぎで勉強して、少なくとも一応知ってますよーという顔ができるようにしよう。