Python-The Zen of Python-4
9:Although practicality beats purity.
◎しかし、実用性を求めると純粋さが失われることがある。
Pythonにはcharのような"文字専用"の型は無い。専用の型が必要なほど
特殊ではないからだ。だが、実用性を追求すると、chrやordといった長さ1
の文字を引数に取る、または返す関数が必要になる。
10:Errors should never pass silently.
◎エラーは隠すな、無視するな。
たとえば、こんなコードを書いてはいけない。
try: import this except ImportError: pass
エラーが検出されたことを明示すること。
try: import this except ImportError: print('this is not available')
11:Unless explicitly silenced.
◎ただし、わざと隠されているのなら見逃せ。
このコードを見てみよう。
d = dict((('spam', 1), ('ham', 2))) default = 0 k = 'eggs' try: v = d[k] except KeyError: v = d[k] = default print("v:{}".format(v)) print("d:{}".format(d))
実行するとこうなる。
$python silenced.py v:0 d:{'eggs': 0, 'ham': 2, 'spam': 1}
このコードでは、keyが存在しなかったときにそのキーにdefaultの値
を設定するようになっている。except節ではエラーが起きたことを外部
に知らせていない。わざとそうしているからだ。