91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么讓腳本同時兼容Python2和Python3

發布時間:2021-07-22 18:22:35 來源:億速云 閱讀:126 作者:chen 欄目:大數據

這篇文章主要講解了“怎么讓腳本同時兼容Python2和Python3”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么讓腳本同時兼容Python2和Python3”吧!

  程序開發者常常會遇到的問題是,有?個?常出名的Python模塊被很多開發者使?著,但并不是所有?都只使?Python2或者Python3。這時候你有兩個辦法。第?個辦法是開發兩個模塊,針對Python2?個,針對Python3?個。還有?個辦法就是調整你現在的代碼使其同時兼容Python2和Python3。本文將介紹?些方法,讓你的腳本同時兼容Python2和Python3。

  Future模塊導?

  這也是最重要的?法,就是導?__future__模塊。它可以幫你在Python2中導?Python3的功能。這有?組例?。上下?管理器是Python2.6+引?的新特性,如果你想在Python2.5中使?它可以這樣做:

  from __future__ import with_statement

  在Python3中print已經變為?個函數。如果你想在Python2中使?它可以通過__future__導?:

  print

  # Output:

  from __future__ import print_function

  print(print)

  # Output:

  模塊重命名

  ?先,?多時候我們會這樣在腳本中導?模塊:

  import foo

  # or

  from foo import bar

  其實你也可以這樣做:

  import foo as foo

  這樣做可以起到和上?代碼同樣的功能,但最重要的是它能讓你的腳本同時兼容Python2和Python3。現在我們來看下?的代碼:

  try:

  import urllib.request as urllib_request # for Python 3

  except ImportError:

  import urllib2 as urllib_request # for Python 2

  稍微解釋?下上?的代碼。我們將模塊導?代碼包裝在try/except語句中。我們是這樣做是因為在Python 2中并沒有urllib.request模塊。這將引起?個ImportError異常。?在Python2中urllib.request的功能則是由urllib2提供的。所以,當我們試圖在Python2中導?urllib.request模塊的時候,?旦我們捕獲到ImportError我們將通過導?urllib2模塊來代替它。

  最后,你要了解as關鍵字的作?。它將導?的模塊映射到urllib.request,所以我們通過urllib_request這個別名就可以使?urllib2中的所有類和?法了。

  過期的Python2內置功能

  另?個需要了解的事情就是Python2中有12個內置功能在Python3中已經被移除了。要確保在Python2代碼中不要出現這些功能來保證對Python3的兼容。這有?個強制讓你放棄12內置功能的?法:

  from future.builtins.disabled import *

  現在,只要你嘗試在Python3中使?這些被遺棄的模塊時,就會拋出?個NameError異常,如下:

  from future.builtins.disabled import *

  apply()

  # Output: NameError: obsolete Python 2 builtin apply is disabled

  標準庫向下兼容的外部?持

  有?些包在?官?的?持下為Python2提供了Python3的功能。例如我們有:

  enum pip install enum34

  singledispatch pip install singledispatch

  pathlib pip install pathlib

感謝各位的閱讀,以上就是“怎么讓腳本同時兼容Python2和Python3”的內容了,經過本文的學習后,相信大家對怎么讓腳本同時兼容Python2和Python3這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

潞城市| 黄骅市| 闵行区| 井研县| 新兴县| 安图县| 景宁| 桂东县| 陵川县| 县级市| 金乡县| 廊坊市| 扬州市| 巴南区| 景泰县| 禹州市| 沅陵县| 新邵县| 仲巴县| 龙里县| 车致| 嵊州市| 永济市| 苍山县| 山西省| 天气| 顺义区| 曲靖市| 西峡县| 新津县| 南投市| 邢台市| 汉寿县| 花莲县| 富蕴县| 南平市| 乌苏市| 龙游县| 阳江市| 阿拉善右旗| 松溪县|