ページ

2009年5月19日

Python 3に対応させたときのメモ

とあるライブラリをPython 3でも動くようにしたときのメモです。

まず、Python 3.xとそれ以前のPythonかの分岐

import sys

def is_python3():
version = sys.version_info[0]
if version < 2:
return false
else:
return true
辞書のキーの一覧をソートする。ちなみに、Python2ではmydict.keys()はlistを返しますが、Python3はdict_keysというクラスのオブジェクトです。このクラスにはsortメソッドがないので、listにします。

l = list(mydict.keys()).sort()
そういえばunicodeでu"hogehoge"と書けないので、uを消して回ります。

例外が・・・

Python3だと、

try:
# some code...
except SomeException as e:
# some code...


のように、asがいる。これ、知らなかったんだけど、 この記述でPython2.6だと動いた。これって、いつからあるんでしょう?手元のCentOSのPython2.4だとなかった。

Python2と3両方で動くコードはやっぱりムリポ。正確には、Python2.5以前とPython3で動くコードかな。。

0 件のコメント: