ホームページ >バックエンド開発 >Python チュートリアル >Python を Python2 と Python3 の両方と互換性を持たせるための 8 つのヒント
Python メーリング リストの誰かが、「Python3 は 10 年以内に普及しないだろう」とコメントしました。私の意見では、この見方は少し悲観的すぎます。 python3 と python2 には互換性がありませんが、両者の違いは多くの人が考えているほど大きくありません。 python2 と python3 の両方をサポートするには、コードにわずかな変更を加えるだけで済みます。以下に、Python コードを python2 と python3 の両方にサポートさせる方法を簡単に紹介します。
1. Python 2.6 より前のバージョンの Python を放棄します
Python 2.6 より前のバージョンの Python にはいくつかの新機能が欠けているため、移行作業に多大な問題が発生します。必要がない場合は、以前のバージョンのサポートを放棄してください。
2. 2to3 ツールを使用してコードを確認します
2to3 は、Python に付属するコード変換ツールで、Python2 コードを Python3 コードに自動的に変換できます。もちろん、残念ながら、変換されたコードは python2 との互換性に関しては何の役にも立ちません。したがって、2to3 に変換されたコードは実際には使用されません。 2to3 t.py を実行して出力情報を表示し、関連する問題を修正します。
3. python -3 を使用して Python プログラム
を実行します。2to3 は Python2&3 の互換性に関する多くの問題をチェックできますが、2to3 では見つけられない問題も数多くあります。 -3 パラメーターを追加すると、プログラムは、python2 と python3 に一貫性がなく、2to3 がそれを処理できないことをコンソールに表示します。例えば、python3とpython2では除算処理のルールが変更されています。 -3 パラメーターを指定して 4/2 を実行すると、 DeprecationWarning: classic int Division というプロンプトが表示されます。
4. __future__ インポートから
「from __future__ import」後、Python の将来の機能を使用できるようになります。 Python の完全な将来の機能は __future__ にあります。 Python3 のすべての文字が Unicode になりました。 python2ではunicode文字を定義する際に文字の前にuを付ける必要がありましたが、3ではuは必要なく、uを付けた後はプログラムはコンパイルされません。この問題を解決するには、「将来インポート unicode_literals から」を行うことで、python2 の文字の動作が python3 の動作と一致し、python2 で定義された通常の文字が自動的に Unicode として認識されるようになります。
5. インポートの問題
python3 には多くの python2 パッケージが「欠落」していますが、ほとんどの場合、これらのパッケージの名前は変更されたばかりです。こういったお悩みも輸入時に対応させていただきます。
6. Python3 を使用してプログラムを作成します
python2ではprintはキーワードですが、python3ではprintは関数になります。実は、print関数はpython2.6にすでに組み込まれているので、printの場合は2to3で紹介されているTipsに従って、新しい書き方に変更するだけで済みます。 python3 の例外処理にいくつかの変更が加えられています。これは print に似ており、2to3 のプロンプトに従って直接変更できます。
7. 現在実行中の Python のバージョンを確認します
場合によっては、python2 と python3 に異なるコードを記述する必要がある場合があります。次のコードを使用して、現在のシステムの Python バージョンを確認できます。
8、6
six は、Python 2 と Python 3 の違いをカプセル化するための簡単なツールをいくつか提供します。 6 つを使用することはあまりお勧めしません。 Python2.6 より前のバージョンの Python をサポートする必要がない場合は、6 つでなくても互換性の問題に対処するのが簡単です。 6 つを使用すると、コードは python3 よりも python2 に近くなります。
python3 の人気には、すべての pythoner のプロモーションが必要です。おそらく、すぐに python3 にアップグレードすることはできませんが、今すぐ python3 互換のコードを書き始めて、条件が整ったら python3 にアップグレードしてください。
注: python2 と python3 の違い
python2 から python3 への移行に関連する問題をより包括的に理解している場合は、無料の Python 書籍である『Python 3 への移植』を読むことをお勧めします。