亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

再見(jiàn),Python 2.x

系統(tǒng) 2080 0
原文鏈接: https://edu.csdn.net/huiyiCourse/detail/1050

再見(jiàn),Python 2.x_第1張圖片

整理 | 屠敏

來(lái)源 | CSDN(ID:CSDNnews)

在技術(shù)的長(zhǎng)河中,軟件、工具、系統(tǒng)等版本的迭代本是常事,但由于使用習(xí)慣、版本的兼容性、易用性等因素,很多用戶及開(kāi)發(fā)者在使用或做開(kāi)發(fā)的過(guò)程中,并不愿意及時(shí)同步更新,而這無(wú)疑為 IT 技術(shù)圈帶來(lái)了諸多碎片化問(wèn)題,正如系統(tǒng)之 Android、Windows,也正如編程語(yǔ)言之 Python。

近日,Python 因?yàn)槠浒姹镜乃槠瘑?wèn)題遭到了 英國(guó)國(guó)家網(wǎng)絡(luò)安全中心(NCSC) 的點(diǎn)名,NCSC 警告開(kāi)發(fā)者們必須考慮將? Python 2.x 的代碼庫(kù)移植到 Python 3.x 版本上,主要是因?yàn)樽?2020 年 1 月 1 日起,Python 2.x 將走到其生命的盡頭,不再得到支持(EOL,End-of-life)。與此同時(shí),NCSC 還將繼續(xù)使用 Python 2.x 的公司比作 EOL 以引誘另一個(gè)? WannaCry(病毒) 或 Equifax(信息泄露)事件的發(fā)生。

Python 的應(yīng)用現(xiàn)狀

回望近些年才被 AI 點(diǎn)燃的 Python,其實(shí)并非是一門新的語(yǔ)言,它最早于 1989 年底由知名的荷蘭計(jì)算機(jī)程序員? Guido van Rossum?發(fā)明,后來(lái) 作為一門面向?qū)ο蟆⒅弊g式計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言于 1991 年面世。其 ? 30 年的發(fā)展歷程可謂比編程語(yǔ)言 界的常青藤 Java 更為久遠(yuǎn)。

而論及 Java,一年兩次迭代的速度早已讓不少開(kāi)發(fā)者痛苦不堪,其紛紛開(kāi)啟對(duì) Oracle 的吐槽模式,并直言“馬上推出 JDK 13 的你只管更新,不用顧及我們的感受,總之我們還堅(jiān)守在 JDK 1.x”。事實(shí)上,不止 Java,Python 也有著相同的問(wèn)題,很多人對(duì) Python 舊版本的堅(jiān)持反而也讓該語(yǔ)言的核心開(kāi)發(fā)者們也備受煎熬,因?yàn)榕f版本在安全性、功能上均無(wú)法與新版本相媲美,容易出現(xiàn)很多 Bug。

根據(jù)著名 IDE 開(kāi)發(fā)商 JetBrains 和 Python 基金會(huì)于今年年初發(fā)布的《Python Developers Survey 2018 Results》報(bào)告顯示,Python 3 的采用率正在快速增長(zhǎng),將其作為主要解釋器的開(kāi)發(fā)者比例從 2017 年的 75% 上升到了 84%,不過(guò)與此同時(shí),Python 2 仍占有 16% 的份額。

再見(jiàn),Python 2.x_第2張圖片

其中,在 Python 2.x 版本中,Python 2.7 最受歡迎且使用的人數(shù)最多,占比 93%。

再見(jiàn),Python 2.x_第3張圖片

那么這些開(kāi)發(fā)者究竟為何不愿意升級(jí)?

Python 的版本之過(guò)

一直以來(lái),語(yǔ)法簡(jiǎn)單、擁有豐富和強(qiáng)大類庫(kù)的 Python 被稱之為一門膠水語(yǔ)言,它能夠很輕松的把用其它語(yǔ)言制作的各種模塊(尤其是 C/C++)輕松地聯(lián)結(jié)在一起。

不過(guò)在版本的迭代過(guò)程中,Python 出現(xiàn)了一個(gè)經(jīng)常被開(kāi)發(fā)者們?cè)嵅〉膯?wèn)題,即于 2008 年發(fā)布的 Python 3 在設(shè)計(jì)時(shí)沒(méi)有考慮向較早版本相容的問(wèn)題,Python 2.x 版本與 Python 3.x 之間并不兼容。這意味著如果你的軟件是基于 Python 2 開(kāi)發(fā)的,想要遷移到 Python 3 上面,無(wú)疑需要耗費(fèi)巨大的成本。而且在此過(guò)程中,如果項(xiàng)目涉及到諸多關(guān)于 Python 2 的類庫(kù),可能還會(huì)導(dǎo)致遷移失敗。

而自此問(wèn)題的出現(xiàn)讓不少原本想要升級(jí)的開(kāi)發(fā)者寧愿停留在以前的舊版本中,對(duì)此,有不少網(wǎng)友表示:

  • Python 2.x 和 Python 3.x 兩者在編碼效率上沒(méi)有明顯差距,但是 Python 3.x 卻要花額外的成本處理兼容性問(wèn)題;

  • 感覺(jué) Python 2 和 Python 3 是兩門不同的語(yǔ)言,只不過(guò)他們的語(yǔ)法相似罷了;

  • ......

除此之外,根據(jù)來(lái)自 Python 社區(qū)開(kāi)發(fā)和共享軟件的存儲(chǔ)中心 Python Package Index 統(tǒng)計(jì)顯示,當(dāng)前主流的 Python 軟件包中仍然有不少使用的是 Python 2.x 版本。且其中,每個(gè)包每個(gè)月的下載量高達(dá)百萬(wàn)次。而想要將這些包移植到 Python 3 上,也絕非是一件易事。

再見(jiàn),Python 2.x_第4張圖片

Python 2.x 淘汰乃大勢(shì)所趨

誠(chéng)然開(kāi)發(fā)者有多少個(gè)不愿意,但 Python 2.x 淘汰已成必然趨勢(shì)。早 在 2018 年 3 月,Python 之父? Guido van Rossum ? 就曾在郵件列表上宣布 Python 2.7 將于 2020 年 1 月 1 日終止支持,這意味著之后 Python 2 將不再被統(tǒng)一維護(hù),與之對(duì)應(yīng)的是主流第三方庫(kù)也不會(huì)再提供針對(duì) Python 2 版本的開(kāi)發(fā)支持。 不過(guò),想要繼續(xù)使用舊版本也并非不可,就如同 Java 一樣,交付商業(yè)費(fèi)用即可,但這樣的做法在日新月異的技術(shù)圈中,顯然不是長(zhǎng)久之計(jì)。

如今 NCSC 的警醒,再次告誡開(kāi)發(fā)者們,“如果繼續(xù)使用不受支持的模塊,公司就會(huì)冒著組織和數(shù)據(jù)的安全性風(fēng)險(xiǎn),因?yàn)槁┒催t早會(huì)出現(xiàn),而且沒(méi)人會(huì)修復(fù)。”

與此同時(shí),來(lái)自 ? NCSC 的平臺(tái)安全研究員 Rich M 也于官方博客上列舉了不升級(jí) Python 2 將面臨的種種問(wèn)題:

依賴項(xiàng)

許多流行的項(xiàng)目,如 NumPy、Requests 和 TensorFlow 等承諾到 2020 年將停止支持 2.x,并且當(dāng)前一些項(xiàng)目已經(jīng)這么做了。

這意味著如果你想使用你喜歡模塊的最新功能,那么就需要使用 Python 3。等待更新的時(shí)間越長(zhǎng),到時(shí)將更改的依賴項(xiàng)的 Python 3 版本會(huì)越多,更新起來(lái)會(huì)變得越困難。

或?qū)⒆璧K其他開(kāi)發(fā)者

如果你正在維護(hù)其他開(kāi)發(fā)者所依賴的庫(kù),則可能會(huì)阻止他們更新到 Python 3。如果阻礙其他開(kāi)發(fā)者,你會(huì)在間接、可能無(wú)意中加大其他項(xiàng)目面臨的安全風(fēng)險(xiǎn)。

你也許不在公司外部發(fā)布任何代碼,但要考慮可能也在內(nèi)部使用你代碼的同事。

錯(cuò)失最新的 Python 功能

  • 表達(dá)式的收益——允許生成器將其部分操作委托給另一個(gè)生成器。

  • Unicode 字符串—— Unicode ? 處理起來(lái)更容易。

  • 打印函數(shù)——打印函數(shù)有額外的功能,使其更靈活。

  • 視圖和迭代器取代列表——一些眾所周知的 API 不再返回列表。比如說(shuō),字典返回鍵、值或兩者的視圖。

  • “multi-with”語(yǔ)句——復(fù)雜的 with 語(yǔ)句更易于閱讀。

  • 使用 * 和 ** 解包——擴(kuò)展 * 可迭代解包運(yùn)算符和 ** 字典解包運(yùn)算符的用途。現(xiàn)在可以在函數(shù)調(diào)用中使用任意數(shù)量的解包運(yùn)算符。

  • 純關(guān)鍵字實(shí)參——允許實(shí)參出現(xiàn)在 varargs 參數(shù)的后面。

  • F 字符串——運(yùn)行時(shí)評(píng)估的一種新類型的字符串常量,可能含有任何有效的Python表達(dá)式。

  • 大量的加速和優(yōu)化機(jī)制。

Python 2.x 如何遷移到 Python 3.x?

如今 Python 已經(jīng)被廣泛應(yīng)用于 Google、 Facebook、Netflix 等實(shí)踐的生產(chǎn)環(huán)境中,也橫掃了各大編程語(yǔ)言排行榜,對(duì)此,更有人預(yù)估,其可能在未來(lái)幾年內(nèi)超越 C 和 Java,成為無(wú)可爭(zhēng)議的編程語(yǔ)言領(lǐng)導(dǎo)者。

那么對(duì)于普通的開(kāi)發(fā)者而言,又該如何丟棄 Python 2.x 版本,向 Python 3.x 版本移植?基于此,NCSC 給出了如下的一些程序、教程和書(shū)籍,希望對(duì)大家有所裨益:

  • Can I Use Python 3 」(https://github.com/brettcannon/caniusepython3)是一個(gè)程序,它可以檢查你項(xiàng)目的依賴項(xiàng),看看有沒(méi)有依賴項(xiàng)在阻止你使用 Python 3。使用該程序來(lái)查看你是否需要換掉任何使用 Python 2.x 的庫(kù)。在這種情況下,有必要訪問(wèn)該庫(kù)主頁(yè),看看是否有計(jì)劃移植到 Python 3。

  • 「2to3」(https://docs.python.org/2/library/2to3.html)是一個(gè) Python 程序,它試圖將 2.x 源代碼轉(zhuǎn)換成 Python 3。它通常與 Python 解釋器一起安裝為腳本。如果你只想看看它對(duì)源代碼進(jìn)行的每次變更有何差異,則可以在不用編寫(xiě)任何更改的情況下運(yùn)行該程序。注意:這并不完美,你可能仍需要手動(dòng)修復(fù)一些代碼。

  • 《支持Python 3:深入指南》(http://python3porting.com/)是一本免費(fèi)的開(kāi)源電子書(shū),可指導(dǎo)你完成添加 Python 3 支持的過(guò)程。本書(shū)解釋了你可能遇到的一些常見(jiàn)遷移問(wèn)題,并列出了使用 Python 3中 的新功能改進(jìn)源代碼的方法。

  • 「Six 」(https://github.com/benjaminp/six)是一個(gè) Python 2 和 3 兼容庫(kù),為開(kāi)發(fā)者提供了編寫(xiě)與 Python 2 和 3 都兼容的代碼。使用該庫(kù),開(kāi)發(fā)人員可以選擇使用哪個(gè)版本的 Python 解釋器來(lái)運(yùn)行代碼。如果你決定使用該庫(kù),確保代碼表明了這一點(diǎn):Python 版本號(hào)可能很快增加到 4.0(截至本文發(fā)稿時(shí)最新版本為 3.7.4)。

  • 利用他人的經(jīng)驗(yàn)來(lái)幫助你——很多人已講述了移植代碼庫(kù)方面的經(jīng)驗(yàn)。Dropbox 在 2018 年將代碼庫(kù)遷移到 Python 3,撰寫(xiě)了一篇博文詳細(xì)介紹了經(jīng)驗(yàn)(https://blogs.dropbox.com/tech/2018/09/how-we-rolled-out-one-of-the-largest-python-3-migrations-ever/)。

  • Python 官網(wǎng)(https://docs.python.org/3/howto/pyporting.html)。

基于此,你會(huì)放棄 Python 2.x 嗎?

參考來(lái)源:

https://www.ncsc.gov.uk/blog-post/time-to-shed-python-2

(*本文為 AI 科技大本營(yíng)轉(zhuǎn)載文章,轉(zhuǎn)載請(qǐng)聯(lián)系原作者)

今晚8點(diǎn),公開(kāi)課直播

再見(jiàn),Python 2.x_第5張圖片

推薦閱讀

DeepMind提圖像生成的遞歸神經(jīng)網(wǎng)絡(luò)DRAW,158行Python代碼復(fù)現(xiàn)

KDD 2019高維稀疏數(shù)據(jù)上的深度學(xué)習(xí)Workshop論文匯總

說(shuō)出來(lái)你可能不信,現(xiàn)在酒廠都在招算法工程師

姚班三兄弟3萬(wàn)塊創(chuàng)業(yè)八年,曠視終沖刺港股

2019 AI ProCon日程出爐 Amazon首席科學(xué)家李沐親授「深度學(xué)習(xí)」

AI Top 30+案例評(píng)選等你來(lái)秀!

福利 | 馬上為你安排和大咖面對(duì)面交流的機(jī)會(huì),不可錯(cuò)過(guò)

92年小哥絞盡腦汁騙得價(jià)值800萬(wàn)比特幣, 破案后警方?jīng)Q定還給受害者

640?wx_fmt=png

你點(diǎn)的每個(gè)“在看”,我都認(rèn)真當(dāng)成了喜歡


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 色综合天天综合网国产国产人 | 国产在视频线精品www666 | 综合色综合 | 中国美女牲交一级毛片 | 站长推荐国产精品视频 | 老司机午夜精品99久久免费 | 亚洲视频区 | 日日干日日干 | 久久精品一区二区影院 | 在线观看a视频 | 国产精品亚洲高清一区二区 | 久久99综合国产精品亚洲首页 | 婷婷丁香在线视频 | 久久成人免费 | 欧美色影院 | 亚洲欧美日韩一区二区在线观看 | 日本久久一区二区 | 激情综合五月网 | 久久久久亚洲精品美女 | 91在线视频播放 | 男人爱看的网站 | 国产青青青 | 久久精品国内一区二区三区 | 天天操天天舔天天射 | 狠狠久久综合伊人不卡 | 奇米影视第四色在线 | 日日射日日干 | 老妇激情毛片免费 | 欧美日韩一区二区高清视 | 看全色黄大色大片免费久黄久 | 毛片爱做的片 | 91年精品国产福利线观看久久 | 久久亚洲网站 | 四虎最新永久免费视频 | 国产在线一区二区三区在线 | 日韩精品欧美亚洲高清有无 | 天天操国产 | 成人看的一级毛片 | 四虎影院永久 | 国产精品免费在线播放 | 免费看欧美一级片 |