Looking for python Answers? Try Ask4KnowledgeBase
Looking for python Keywords? Try Ask4Keywords

Python LanguagePython 2からPython 3への非互換性


前書き

ほとんどの言語とは異なり、Pythonは2つのメジャーバージョンをサポートしています。 Python 3がリリースされた2008年以来、多くの人が移行を行いましたが、多くはそうしていませんでした。両方を理解するために、このセクションではPython 2とPython 3の重要な違いについて説明します。

備考

現在サポートされているPythonのバージョンは2.7(Python 2)と3.6(Python 3)です。さらに、バージョン3.3および3.4​​は、ソース形式でセキュリティ更新プログラムを受信します。

Python 2.7はほとんどの旧バージョンのPythonと下位互換性があり、Pythonのほとんどの1.xおよび2.xバージョンのPythonコードを変更せずに実行できます。これは広範囲に利用可能であり、広範なパッケージを集めています。また、CPython開発者は非推奨と見なされ、セキュリティとバグ修正の開発のみを受け取ります。 CPythonの開発者は、このバージョンの言語を2020年に放棄しようとしています。

Python Enhancement Proposal 373によれば、2016年6月25日以降、Python 2の将来のリリースは予定されていませんが、2020年まではバグ修正やセキュリティアップデートがサポートされます。(2020年の正確な日付はPythonの2)

Python 3は、言語開発者が言語の核心にあった懸念に対処するために意図的に下位互換性を破った。 Python 3は新しい開発と新機能を受け取ります。これは、言語開発者が前進する予定の言語のバージョンです。

Python 3.0の初期リリースから現在のバージョンまでの間に、Python 3のいくつかの機能はPython 2.6にバックポートされ、Python 3の他の部分はPython 2との構文互換性が拡張されました。したがって、 Python 2とPython 3の両方で、将来のインポートと特別なモジュール( 6のような)を使って動作するPython。

将来のインポートは、モジュールの始めにある必要があります。

from __future__ import print_function
# other imports and instructions go after __future__
print('Hello world')

__future__モジュールの詳細については、Pythonドキュメントの関連ページを参照してください

2to3ツールは、Python 2.xコードをPython 3.xコードに変換するPythonプログラムですPythonのドキュメントも参照してください)。

パッケージ6はPython 2/3との互換性のためのユーティリティを提供します:

  • 名前を変更したライブラリへの統一されたアクセス
  • 文字列/ユニコードタイプの変数
  • 削除されたメソッドまたは名前が変更されたメソッドの関数

Python 2とPython 3の相違点については、ここで参照できます

Python 2からPython 3への非互換性 関連する例