伊人99re_av日韩成人_91高潮精品免费porn_色狠狠色婷婷丁香五月_免费看的av_91亚色网站

中培偉業(yè)IT資訊頻道
您現(xiàn)在的位置:首頁(yè) > IT資訊 > 軟件研發(fā) > 腳本相同時(shí)Python2和Python3如何兼容?

腳本相同時(shí)Python2和Python3如何兼容?

2020-07-06 12:01:07 | 來(lái)源:中培企業(yè)IT培訓(xùn)網(wǎng)

程序開(kāi)發(fā)人員經(jīng)常遇到的問(wèn)題是,有很多開(kāi)發(fā)人員都在使用一個(gè)非常知名的Python模塊,但是并非所有人都只使用Python 2或Python3。這時(shí)您有兩個(gè)選擇,第一種方法是開(kāi)發(fā)兩個(gè)模塊,一個(gè)用于Python2,一個(gè)用于Python3;另一種方法是調(diào)整當(dāng)前代碼,使其與Python2和Python3兼容。本文將介紹一些方法,使您的腳本與Python2和Python3兼容。

  Future模塊導(dǎo)?

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

from __future__ import with_statement

在Python3中print已經(jīng)變?yōu)?個(gè)函數(shù)。如果你想在Python2中使?它可以通過(guò)__future__導(dǎo)?:

print

# Output:

from __future__ import print_function

print(print)

# Output:

模塊重命名

?先,?多時(shí)候我們會(huì)這樣在腳本中導(dǎo)?模塊:

import foo

# or

from foo import bar

其實(shí)你也可以這樣做:

import foo as foo

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

try:

import urllib.request as urllib_request # for Python 3

except ImportError:

import urllib2 as urllib_request # for Python 2

稍微解釋?下上?的代碼。我們將模塊導(dǎo)?代碼包裝在try/except語(yǔ)句中。我們是這樣做是因?yàn)樵赑ython 2中并沒(méi)有urllib.request模塊。這將引起?個(gè)ImportError異常。?在Python2中urllib.request的功能則是由urllib2提供的。所以,當(dāng)我們?cè)噲D在Python2中導(dǎo)?urllib.request模塊的時(shí)候,?旦我們捕獲到ImportError我們將通過(guò)導(dǎo)?urllib2模塊來(lái)代替它。

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

過(guò)期的Python2內(nèi)置功能

另?個(gè)需要了解的事情就是Python2中有12個(gè)內(nèi)置功能在Python3中已經(jīng)被移除了。要確保在Python2代碼中不要出現(xiàn)這些功能來(lái)保證對(duì)Python3的兼容。這有?個(gè)強(qiáng)制讓你放棄12內(nèi)置功能的?法:

from future.builtins.disabled import *

現(xiàn)在,只要你嘗試在Python3中使?這些被遺棄的模塊時(shí),就會(huì)拋出?個(gè)NameError異常,如下:

from future.builtins.disabled import *

apply()

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

標(biāo)準(zhǔn)庫(kù)向下兼容的外部?持

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

enum pip install enum34

singledispatch pip install singledispatch

pathlib pip install pathlib

以上就是全部的方法,看到這里,相信大家已經(jīng)明白了腳本相同時(shí)Python2和Python3如何兼容。如果要想學(xué)習(xí)更多關(guān)于Python的信息,請(qǐng)繼續(xù)關(guān)注中培偉業(yè)。

標(biāo)簽: Python 軟件研發(fā)
主站蜘蛛池模板: 日本一级毛片免费看 | 精品人妻无码一区二区三区三十路 | 爆乳无码系列肉感在线播放 | 国产男人操女人 | 裸体美女扒尿口喷白浆 | 国产区av在线 | 国产视频18 | 午夜影院视频在线观看 | 99久久久久久久久 | 97夜夜澡人人爽人人喊中国片 | 日韩在线网址 | 国产一区欧美 | 黄色一级片在线看 | 国产福利写真片视频在线 | 疯狂抽草在线精品视频 | 2020国产精品香蕉在线观看 | 成年人视频在线观看免费 | 国产日韩综合一区二区性色AV | 精品国产一区二区三区四区在线看 | 日韩av无码精品色午夜 | 日本色综合网 | 少妇性按摩无码中文a片 | 超碰老师 | 亚洲黄色免费观看 | 久久99亚洲网美利坚合众国 | 午夜精品久久久久久久久久久久久蜜桃 | 免费国产片在线观看 | 在线视频播放免费观看 | 男同大尺度GV在线观看 | 精品成人久久久 | 亚洲欧美激情国产综合久久久 | 日韩久久久久久久久 | 亚洲av永久无码精品一百度 | 欧洲尺码日本尺码专线不卡顿 | 国产在线看片 | 最新中文字幕AV无码不卡 | 国产精品9999久久久久 | 亚洲小说区图片区色综合网 | 国产在线可以看麻豆 | 少妇无力反抗慢慢张开双腿 | 天天色成人综合网 |