python2.7で書かれたコードをpython3で動作するようにする

Python 3系列で動作させるためには、以下のような変更を行う必要があります。

  1. print文の括弧を追加します。例えば、print 'hello'print('hello')に変更します。
  2. xrangerangeに置き換えます。Python 3ではxrangeは削除され、rangeがその役割を果たします。
  3. dict.iteritems()dict.items()に置き換えます。Python 3ではdictionary viewsが導入され、iteritems()メソッドは廃止されました。
  4. except節でエラーの種類を明示的に指定します。例えば、except:except Exception:などに変更します。
  5. //演算子の振る舞いが変更されました。整数同士の割り算の結果を整数で返すようになりました。浮動小数点数での結果が必要な場合は、オペランドの少なくとも一方を浮動小数点数に変換します。
  6. mapfilterzipなどの関数の返り値がリストではなくイテレータになりました。リストが必要な場合はlist()で囲みます。
  7. cmp関数が削除されました。代わりにkey引数を持つsortメソッドやsorted関数を使用します。
  8. itertools.izipitertools.imapitertools.ifilterなどのイテレータ版の関数が削除されました。代わりにzipmapfilter関数を使用します。
  9. basestringが削除されました。代わりにstrを使用します。
  10. long型が削除され、int型に統合されました。

これらの変更を行えば、ほとんどのPython 2のコードをPython 3で動作させることができるはずです。ただし、依存ライブラリや外部モジュールの互換性も確認する必要があります。

コメント