抜粋翻訳 PEP3138 String representation in Python 3000

PEP3138 String representation in Python 3000

概要

この文章では、Python 3000用に文字列の新しい表現方法を提案する。 Python 3000以前のPythonでは、組み込み関数repr()はデバッグやログ出力のために、任意のオブジェクトを画面表示可能なASCIIの文字列に変換していた。 Python 3000ではユニコード標準に基づいて、より広い範囲の文字を「画面表示可能」とみなすべきである。

動機

Python2.*系では「表示可能な文字列を作成する関数」reprは、非ASCII文字をすべてエスケープする。文字列を構成する文字のほとんどがASCIIである場合には問題にならない。しかし、日本語などいくつかの言語ではほとんどの文字が非ASCIIであり、とても不便である。

例えば open(japaneseFilemame) が何か例外を投げる場合、エラーメッセージは IOError: [Errno 2] No such file or directory: '\u65e5\u672c\u8a9e' といったものになる。

Python 3000 には、非ASCII識別子など、ラテン文字以外を使用しているユーザーに優しい特徴がたくさん盛り込まれている。表示可能な文字列の作成に関しても同様に進化できればきっと役に立つことだろう。