不相容性從 Python 2 轉移到 Python 3

目前有兩個受支援的 Python 版本:2.7(Python 2)和 3.6(Python 3)。此外,版本 3.3 和 3.4 以源格式接收安全更新。

Python 2.7 與大多數早期版本的 Python 向後相容,並且可以在大多數 1.x 和 2.x 版本的 Python 中執行 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 將在 Python 2 和 Python 3 上執行。

未來的匯入必須在你的模組的開頭:

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

有關 __future__ 模組的更多資訊,請參閱 Python 文件中相關頁面

2to3 的工具是一個 Python 程式的 Python 2.x 的程式碼轉換到 Python 3.x 的程式碼,也看到了 Python 文件

six 提供了 Python 2/3 相容性的實用程式:

  • 統一訪問重新命名的庫
  • 字串/ unicode 型別的變數
  • 已刪除或已重新命名的方法的函式

可以在此處找到 Python 2 和 Python 3 之間差異的參考。