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節ではエラーが起きたことを外部
に知らせていない。わざとそうしているからだ。