做服務更好的
網站建設公司
當前位置:首頁 > 建站資訊

Python2將停止維護,進入Python3時代

發表日期:2020-12-26 14:12:21作者來源:巨人網絡瀏覽次數:2

         Python2將停止維護,進入Python3時代,作為目前最為流行的編程語言,Python 的出現讓計算機編程不再是生僻的專業技能,而是常人都能學習和使用的萬金油,它也是人工智能領域里最為常用的語言之一。不過在三個月內,Python 或許要經歷史上最大的一次變化。
      
    昨天,Python 官方網站的一紙聲明《Python 2 的落幕》引發了人們的廣泛討論:該開發社區表示,官方對于 Python 2 的支持將會在 2020 年 1 月 1 日結束,在這之后即使是出現安全問題,舊版本的語言也不會得到任何改進。人們現在必須立即轉移到 3.0 以上版本了。
 
    目前,仍有一些開發者以志愿者的身份維護 Python2 語言。不過他們已共同決定,2020 年 1 月 1 日將是 Python2「生命終結」的那一天。該日之后,所有 Python2 相關的維護都將終止。
 
    為什么 Python2 更新到 Python3 這么慢
 
    不太了解編程的讀者可能會有個疑問:總是提 Python3 比 Python2 好太多,為什么還是有人不更新呢?
 
主要有以下幾個原因:
 
    1. 工程穩定性相比軟件的更新速度更為重要。
 
    編程語言是構成軟件的基石,編程語言如果發生了更新換代,軟件的更新不是一件小事,需要全面地對所有代碼進行更新。在這一過程中,如果出現新舊版本不兼容、代碼穩定性變差等情況,可能會影響到用戶的持續使用。因此,對于一些版本迭代,很多軟件開發者選擇不更新。寧可保證用戶使用的穩定性,也不能急于更新到最新版本。
 
    2. Python 官方「允許」Python2 持續存在。
 
    Python 官方在文檔中也提到,大版本的更新有可能會「傷害」開發者。具體而言,如果在 2006 年就迅速要求開發者放棄 Python2,則很多開發者可能因為開發成本問題,直接放棄 Python。繁榮的開發者社區是維持 Python 編程語言地位的重要條件,因此官方一直在更新維護 Python2,讓更多的開發者留存在社區中。
 
3. Python2 確實也好用。
 
    雖然相比 Python3,Python2 存在很多大的問題,但是 Python2 依然也是一個開發者友好的 Python 版本,在 Python2 時期就有很多開源庫支持了。因此,一些開發者希望繼續使用 Python2。
 
    這些原因下來,Python3 取代 Python2 的進程就拖了十來年。不過,隨著機器學習的發展,機器學習領域對編程語言的性能有很高的要求,且大部分新的工具都支持 Python3。因此,使用性能更好,有更多工具支持的 Python3 成為了開發者的必然選擇。
官方答疑
    Python2 是 2000 年發布的。一些年之后,我們意識到需要對 Python 進行一次大的更新升級。因此在 2006 年,我們開始了 Python3 的開發工作。因為很多人在當時沒有更新,而我們也不希望這次更新給他們造成損害,因此多年來我們一直在維護并公開新的 Python2 和 Python3 版本。
 
    但是這樣一來,維護 Python 的工作變得非常困難。Python2 中有一些改進和維護是很難進行下去的。這會擠占我們提升 Python3 速度和性能的精力。
 
    而且,如果還有很多人繼續使用 Python2,那些用 Python 開發程序的開源工作者工作起來會更困難。他們不能使用 Python3 中的新特性讓開源工具變得更好用。
 
    我們不想傷害使用 Python2 的開發者,因此在 2008 年,我們宣布 Python2 將在 2015 年終止,并希望大家能夠更新。當時,一些人更新了,但是還有一些人留在了 Python2 上,因此我們將終止時間推后到了 2020 年。
Python3的特點

    1. 明確區分字符和字節類型
    沒遇到過Python編碼問題都不能稱之為真正的Python程序員,但凡是在中文環境下使用Python或多或少都遇到過字符編碼的問題,最常見的錯誤就是UnicodeEncodeError,UnicodeDecodeError 這樣的錯誤。出現這種錯誤的根本原因在于Python2積攢下來的歷史包袱,默認使用ASCII作為編碼格式,字符串和字節類型界限模糊,字符串又分為str和unicode類型,有時一個字符串既是str類型,又可以是byte類型,混亂至極。所以在Python3徹底解決的這種情況,首先Python3使用utf-8作為默認編碼,這樣就兼容了所有字符,無論是中文、日文、韓文還是火星文都可以表示了,此外,str和byte兩種類型做了明確的區分,因此,使用Python3可解決99%的編碼錯誤問題。
 
 
    2. 取消老式類
    Python2 為了兼容之前的版本,Python中的類還分為新式類和舊式類,舊式類由于早期的設計缺陷導致功能不完善,于是推出了新式類,這樣一來,在python2中就一直存在新舊兩種形式的類,而在Python3就徹底把舊式類拋棄掉了。這也很多程度上減少了開發者每次創建一個對象還是顯式的指定object作為父類的情景。
 
 
    3. 類型聲明
    我們都知道Python是一門動態語言,動態語言的一大特點就是定義變量的時候不需要指定數據類型,變量本省是沒有類型整個說法的,真正的類型是由對象才有,正因為如此,這個特性給開發者帶來靈活和便利性,與此同時,有利也有弊,任何變量在運行期你是無法確定變量的類型的,程序不得不在運行時才能確定類型,這樣就會造成一個問題,如果你是API的調用者,當API的提供方沒有提供詳細的文檔說明或者代碼注釋的時候,你根本就無法利用他們給你提供的服務,而且,項目規模變大之后,沒有類型聲明的代碼對維護也是一大挑戰,因為,Python3考慮到這種情況,新增了類型聲明,在方法定義或者數據的返回值,都可以指定一個數據類型,明確要求調用者必須使用指定的類型才能調用該方法。
 
 
    4. 異步
    Python雖然提高的開發的效率,但是帶來的代價就是程序性能上的損耗,因為它是一種解釋型語言,速度上自然比不上靜態語言,與此同時,Python天生的GIL語言,并不能充分利用多核CPU,使得程序可以并行執行。所以,多線程面對計算密集型場景成了雞肋。為了解決這一問題,Python引入了 ascync ,開始原生支持異步操作,這使得在單線程情況下,也能充分利用系統資源,提高程序性能。
 
相關推薦新聞

b2b2c網站建設網站開發

隨著電子商務的發展,B2B2C是互聯網時代發展的必然產物?!?1世紀,......

日期:2017-11-08 瀏覽次數:179

垂直行業門戶網站建設方案有哪些?

網站建設門戶網站建設......

日期:2017-11-08 瀏覽次數:158

培訓網站有哪些建站流程和建站目標

 隨著社會的發展,人們對知識的渴望,培訓機構風生水起,培訓網站也順勢發......

日期:2017-11-08 瀏覽次數:123

為什么要進行網站建設?

直到目前為止,還有很多人不清楚,到底進行網站建設有什么用途,建站之后能......

日期:2017-11-08 瀏覽次數:132

網站建設行業存在哪些問題以及解決方案

在中國,隨著網絡的不斷提速,由之前的2G網絡到現在的4G網絡,5G也在......

日期:2017-11-08 瀏覽次數:151

當下流行網站建設有哪些類型?

目前,網站建設風生水起,網站建設從單一走向復雜,然后從復雜轉向專業。技......

日期:2017-11-08 瀏覽次數:134

網站建設到底屬于什么行業?

......

日期:2017-11-08 瀏覽次數:139

午夜老司机精品福利视频