http://gihyo.jp/dev/feature/01/python3000/0002
毎週水曜連載,第二回となる今回は,Python 3.0で予定されている変更のうち,組み込み型に関する変更をまとめてみました。
Python 3.0では,文字列型,整数型の統合が予定されています。特に文字列型の統合は,マルチバイト文字列を扱うプログラムに対して様々な影響があると予想されます。
Pythonはもともと8ビットクリーンな文字列型のみを持っており,Python 1.6でユニコード文字列が追加されました。このような経緯もあって,8ビット文字列の文字列型とユニコード型の扱いにあいまいな部分がありました。Python 3.0では,文字列型がユニコード型に統一されます。それに伴って,マルチバイト文字列を扱う場合は,文字列型の生成時にエンコードを明示する必要が出てきます。
文字列の生成時にエンコードを指定して明示的にユニコード文字列を生成する,というのは一見面倒に見えますが,その後の処理が大幅にシンプルになるはずです。Webアプリを作るとき,関数やメソッドの引数をstr型かunicode型かを調べて,unicode型にそろえる,なんて処理を書いたりするものですが,Python 3.0では文字列型が統一されますので,こういう面倒がなくなるわけですな。
実働するコード例も含めて記事にしてあります。一足先にPython 3000の世界を堪能したい方は,ぜひお読みください:-)。