GAE用に2.5がPCに入っていた!


2009-12-14 - 先がまっくろー
と、
Pythonで2つの文字列がa == bだけどもnot(a is b)であるようなケース - 西尾泰和のはてなダイアリー
を見たら、


The History of Python.jp: なぜ、例外がクラス化されたのか?
を思い出しました。


Python 2.6 & 3.0 で廃止された機能に、文字列例外なるものがあったそうです。

error = "error"
try:
    raise error
    print "spam"
except error:
    print "egg"



むか〜しは、except節にクラス名ではなく、文字列を書いていました。

raise に指定したのと同じの文字列をキャッチします。


が、ここで、Pythonの中の人は、文字列の同一性の判定に"==" ではなく "is" を使い、

しかも同じ内容の文字列を最適化して共有する機能も付けてしまったもんだから、

悲しい事になっちまったらしいです。