2017-02-08 4 views
3

私はこの互換性のあるPython 2と3のコードを、cheatsheetの助けを借りて書いています。これを行うのに役立つさまざまなパッケージとモジュールがあります。futureパッケージ(future.utilsなど)、sixパッケージ、および__future__モジュールが組み込まれています。相互互換性Python 2/3の記述:__future__、six、future.utilsの違いは?

これらのパッケージを使用する際に注意すべき点はありますか?私はそれらをミックスしてマッチングしなければならないのですか?それとも、完全にクロスコンパチブルなコードを書くことは可能ですか?パイソン2-3互換性の面では

答えて

4

__future__は - あなたは、彼らが(必須対)はオプションですPythonのバージョンではオプション機能を使用することができますのpythonの組み込みモジュールです。たとえば、unicode_literalspython2.7ではオプションでしたが、python3.0では必須になりました。

six - ほとんどの場合、モジュール/機能の名前を変更してpython2からpython3の間の互換性を高めますが、実際にバックポート(またはフォワードポート)機能はありません。 Pythonバージョン>=2.4でもサポートされています。

future - 近代的で、サポートはpython>=2.6,>=3.3のみで、機能が豊富です。

there is some agreementのように見えます。古いバージョンのPythonのサポートを中止することができる場合は、futuresixよりも優先されます。