中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Python的應用現狀

發布時間:2020-08-03 15:56:06 來源:億速云 閱讀:184 作者:清晨 欄目:編程語言

小編給大家分享一下Python的應用現狀,相信大部分人都還不怎么了解,因此分享這篇文章給大家學習,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學習方法吧!

如果你仍在使用 2.x,那么是時候將你的代碼移植到 Python 3 了。

Python的應用現狀

在技術的長河中,軟件、工具、系統等版本的迭代本是常事,但由于使用習慣、版本的兼容性、易用性等因素,很多用戶及開發者在使用或做開發的過程中,并不愿意及時同步更新,而這無疑為 IT 技術圈帶來了諸多碎片化問題,正如系統之 Android、Windows,也正如編程語言之 Python。

近日,Python 因為其版本的碎片化問題遭到了英國國家網絡安全中心(NCSC)的點名,NCSC 警告開發者們必須考慮將 Python 2.x 的代碼庫移植到 Python 3.x 版本上,主要是因為自 2020 年 1 月 1 日起,也就是明天,元旦。Python 2.x 將走到其生命的盡頭,不再得到支持(EOL,End-of-life)。與此同時,NCSC 還將繼續使用 Python 2.x 的公司比作 EOL 以引誘另一個 WannaCry(病毒)或 Equifax(信息泄露)事件的發生。

Python 的應用現狀

回望近些年才被 AI 點燃的 Python,其實并非是一門新的語言,它最早于 1989 年底由知名的荷蘭計算機程序員 Guido van Rossum 發明,后來作為一門面向對象、直譯式計算機程序設計語言于 1991 年面世。其 30 年的發展歷程可謂比編程語言界的常青藤 Java 更為久遠。

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

根據著名 IDE 開發商 JetBrains 和 Python 基金會于今年年初發布的《Python Developers Survey 2018 Results》報告顯示,Python 3 的采用率正在快速增長,將其作為主要解釋器的開發者比例從 2017 年的 75% 上升到了 84%,不過與此同時,Python 2 仍占有 16% 的份額。

Python的應用現狀

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

Python的應用現狀

那么這些開發者究竟為何不愿意升級?

Python 的版本之過

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

不過在版本的迭代過程中,Python 出現了一個經常被開發者們詬病的問題,即于 2008 年發布的 Python 3 在設計時沒有考慮向較早版本相容的問題,Python 2.x 版本與 Python 3.x 之間并不兼容。這意味著如果你的軟件是基于 Python 2 開發的,想要遷移到 Python 3 上面,無疑需要耗費巨大的成本。而且在此過程中,如果項目涉及到諸多關于 Python 2 的類庫,可能還會導致遷移失敗。

而自此問題的出現讓不少原本想要升級的開發者寧愿停留在以前的舊版本中,對此,有不少網友表示:

·Python 2.x 和 Python 3.x 兩者在編碼效率上沒有明顯差距,但是 Python 3.x 卻要花額外的成本處理兼容性問題;

·感覺 Python 2 和 Python 3 是兩門不同的語言,只不過他們的語法相似罷了;

·......

除此之外,根據來自 Python 社區開發和共享軟件的存儲中心 Python Package Index 統計顯示,當前主流的 Python 軟件包中仍然有不少使用的是 Python 2.x 版本。且其中,每個包每個月的下載量高達百萬次。而想要將這些包移植到 Python 3 上,也絕非是一件易事。

Python的應用現狀

Python 2.x 淘汰乃大勢所趨

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

如今 NCSC 的警醒,再次告誡開發者們,“如果繼續使用不受支持的模塊,公司就會冒著組織和數據的安全性風險,因為漏洞遲早會出現,而且沒人會修復。”

與此同時,來自 NCSC 的平臺安全研究員 Rich M 也于官方博客上列舉了不升級 Python 2 將面臨的種種問題:

依賴項

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

這意味著如果你想使用你喜歡模塊的最新功能,那么就需要使用 Python 3。等待更新的時間越長,到時將更改的依賴項的 Python 3 版本會越多,更新起來會變得越困難。

或將阻礙其他開發者

如果你正在維護其他開發者所依賴的庫,則可能會阻止他們更新到 Python 3。如果阻礙其他開發者,你會在間接、可能無意中加大其他項目面臨的安全風險。

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

錯失最新的 Python 功能

表達式的收益——允許生成器將其部分操作委托給另一個生成器。

Unicode 字符串——Unicode 處理起來更容易。

打印函數——打印函數有額外的功能,使其更靈活。

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

“multi-with”語句——復雜的 with 語句更易于閱讀。

使用 * 和 ** 解包——擴展 * 可迭代解包運算符和 ** 字典解包運算符的用途。現在可以在函數調用中使用任意數量的解包運算符。

純關鍵字實參——允許實參出現在 varargs 參數的后面。

F 字符串——運行時評估的一種新類型的字符串常量,可能含有任何有效的Python表達式。

大量的加速和優化機制。

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

如今 Python 已經被廣泛應用于 Google、Facebook、Netflix 等實踐的生產環境中,也橫掃了各大編程語言排行榜,對此,更有人預估,其可能在未來幾年內超越 C 和 Java,成為無可爭議的編程語言領導者。

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

「Can I Use Python 3」(https://github.com/brettcannon/caniusepython3)是一個程序,它可以檢查你項目的依賴項,看看有沒有依賴項在阻止你使用 Python 3。使用該程序來查看你是否需要換掉任何使用 Python 2.x 的庫。在這種情況下,有必要訪問該庫主頁,看看是否有計劃移植到 Python 3。

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

《支持Python 3:深入指南》(http://python3porting.com/)是一本免費的開源電子書,可指導你完成添加 Python 3 支持的過程。本書解釋了你可能遇到的一些常見遷移問題,并列出了使用 Python 3中 的新功能改進源代碼的方法。

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

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

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

基于此,你會放棄 Python 2.x 嗎?

以上是Python的應用現狀的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

AI

郑州市| 崇信县| 德清县| 乌拉特前旗| 哈密市| 雅安市| 琼海市| 米林县| 寿宁县| 淳安县| 应用必备| 曲麻莱县| 镇雄县| 邻水| 尤溪县| 中阳县| 克拉玛依市| 佛学| 始兴县| 宜丰县| 华阴市| 宁海县| 剑河县| 海林市| 通州市| 义马市| 乐至县| 阿坝| 富锦市| 萍乡市| 洪洞县| 缙云县| 米易县| 墨脱县| 扶绥县| 合川市| 三原县| 礼泉县| 万州区| 永兴县| 瑞安市|