初識Python - Python的歷史(轉)

聲明:
本文轉自維基百科
若有意見請聯繫刪除python

綜述

該編程語言 的Python是在20世紀80年代末的設想,和實施是在1989年12月開始由吉多·範羅蘇姆在CWI在荷蘭的繼任者農行可以異常處理,並與接口阿米巴操做系統。Van Rossum是Python的主要做者,他在決定Python方向方面的持續核心做用體如今Python社區給予他的稱號,即仁慈的生活獨裁者(BDFL)。Python以BBC電視節目Monty Python的Flying Circus命名。git

Python 2.0於2000年10月16日發佈,具備許多主要的新功能,包括用於內存管理和支持Unicode的循環檢測垃圾收集器(除了引用計數)。然而,最重要的變化是發展過程自己,轉向更透明和社區支持的過程。程序員

Python 3.0是一個主要的,向後兼容的主要版本,通過長時間的測試後於2008年12月3日發佈。它的許多主要功能也被反向移植到向後兼容的Python 2.6和2.7編程

早期歷史

1991年2月,van Rossum 將代碼(標記爲0.9.0版)發佈到alt.sources。已經存在於該階段中發展是類具備繼承,異常處理,功能和核心數據類型list,dict,str等。在這個初始版本中還有一個借用Modula-3的模塊系統 ; Van Rossum將該模塊描述爲「Python的主要編程單元之一」。 Python的異常模型也相似於Modula-3,增長了一個子句。 1994年comp.lang.pythonelse,Python 的主要討論論壇成立,標誌着Python用戶羣增加的里程碑。數組

版本1

Python 在1994年1月達到了1.0版本包含在這個版本的主要新特性是函數式編程工具lambda,map,filter和reduce。Van Rossum說「Python得到了lambda,reduce(),filter()和map(),這是一個錯過了他們並提交工做補丁的Lisp黑客的禮貌」。編程語言

Van Rossum在CWI時發佈的最新版本是Python 1.2。1995年,Van Rossum 在弗吉尼亞州雷斯頓的國家研究計劃公司(CNRI)繼續他的Python工做,從那裏他發佈了幾個版本。函數式編程

在1.4版本中,Python已經得到了幾個新功能。其中值得注意的是Modula-3啓發的關鍵字參數(也相似於Common Lisp的關鍵字參數)以及對複數的內置支持。還包括經過名稱修改隱藏數據的基本形式,儘管這很容易被繞過。函數

在Van Rossum留在CNRI期間,他推出了「人人計算機程序設計」(CP4E)計劃,旨在讓更多人可以更方便地使用編程,而且在編程語言中具備基本的「識字能力」,相似於基本的英語識字和數學技能。大多數僱主。Python在這方面發揮了核心做用:因爲它專一於清晰的語法,它已經適用,而CP4E的目標與其前身ABC類似。該項目由DARPA資助。截至2007年,CP4E項目處於非活動狀態,雖然Python試圖在其語法和語義上易於學習且不太晦澀,但與非程序員聯繫並非一個積極的問題。工具

BeOpen

2000年,Python核心開發團隊轉移到BeOpen.com,組建了BeOpen PythonLabs團隊。CNRI要求發佈1.6版本,總結Python的開發,直到開發團隊離開CNRI。所以,1.6和2.0的發佈時間表有很大的重疊。Python 2.0是BeOpen.com的惟一版本。在BeOpen.com發佈Python 2.0以後,Guido van Rossum和其餘PythonLabs開發人員加入了Digital Creations。學習

Python 1.6版本包含一個新的CNRI許可證,該許可證比早期版本中使用的CWI許可證長得多。新許可證中包含一條條款,聲明該許可證受弗吉尼亞州法律管轄。在自由軟件基金會認爲,擇業的法律條款是有不兼容的GNU通用公共許可證。BeOpen,CNRI和FSF經過談判改變了Python的免費軟件許可證,使其與GPL兼容。Python 1.6.1與Python 1.6基本相同,只有一些小錯誤修復,而且與新的GPL兼允許可證。

版本2

Python 2.0引入了列表推導,這是從函數式編程語言SETL和Haskell借用的一個特性。除了Haskell對標點字符的偏好和Python對字母關鍵字的偏好以外,Python的這種結構的語法與Haskell很是類似。Python 2.0還引入了一個可以收集參考週期的垃圾收集系統。

Python 2.1與Python 1.6.1以及Python 2.0很接近。其許可證已重命名爲Python Software Foundation License。從Python 2.1發佈alpha版本開始,全部添加的代碼,文檔和規範都歸Python軟件基金會(PSF)全部,該軟件基金會是一個非營利組織,成立於2001年,以Apache軟件基金會爲藍本。該版本包括對語言規範的更改,以支持嵌套做用域,就像其餘靜態做用域語言同樣。(默認狀況下,該功能處於關閉狀態,不須要,直到Python 2.2。)

Python 2.2的一項重大創新是將Python的類型(用C編寫的類型)和類(用Python編寫的類型)統一到一個層次結構中。這種統一使得Python的對象模型純粹且始終如一地面向對象。還增長了受Icon啓發的發電機。

Python 2.5於2006年9月發佈並引入了with語句,該語句將代碼塊包含在上下文管理器中(例如,在運行代碼塊以前獲取鎖定並在以後釋放鎖定,或打開文件而後關閉它),容許資源獲取是初始化(RAII)的行爲,並取代常見的嘗試/最終成語。

Python 2.6發佈時與Python 3.0一致,幷包含該版本的一些功能,以及「警告」模式,突出顯示了在Python 3.0中刪除的功能的使用。相似地,Python 2.7與2009年6月26日發佈的Python 3.1 的功能相吻合。並行2.x和3.x版本隨後中止,Python 2.7是最後一個版本在2.x系列中。2014年11月,宣佈Python 2.7將在2020年以前獲得支持,但鼓勵用戶儘快轉向Python 3。

版本3

Python 3.0(也稱爲「Python 3000」或「Py3K」)於2008年12月3日發佈。它旨在糾正語言中的基本設計缺陷 - 在保持徹底向後兼容性的同時沒法實現所需的更改2.x系列,須要一個新的主要版本號。Python 3的指導原則是:「經過刪除舊的處理方式來減小功能重複」。

Python 3.0的開發與先前版本的理念相同。然而,因爲Python已經積累了新的和冗餘的方法來編寫相同的任務,Python 3.0強調刪除重複的結構和模塊,與「應該有一個 - 最好只有一個 - 顯而易見的方法」一致。

儘管如此,Python 3.0仍然是一種多範式語言。編碼器仍然具備面向對象,結構化編程,函數編程和其餘範例的選項,但在如此普遍的選擇中,Python 3.0中的細節要比Python 2.x中更明顯。

2018年7月12日,Guido van Rossum辭去領導職務。

兼容性

Python 3.0破壞了向後兼容性,而且許多Python 2代碼在Python 3上不會被修改.Python的動態類型與改變某些字典方法的語義的計劃相結合,例如,從Python 2.x到Python的完美機械翻譯 3.0很難。名爲「2to3」的工具能夠自動完成翻譯部分。在這方面,2to3彷佛至關成功,儘管早期的評論指出,這種工具永遠沒法處理翻譯的各個方面。在推出Python 3以前,建議須要兼容2.x和3.x系列的項目有一個源(針對2.x系列),並使用Python 3.x平臺生成版本2to3的。只要代碼須要在Python 2.x上運行,就不鼓勵對Python 3.x代碼進行編輯。再也不推薦這個; 截至2012年,首選方法是建立一個可使用兼容性模塊在Python 2和3下運行的單個代碼庫。

功能

Python 3.0中包含的一些主要更改包括:

  • 更改,print以便它是內置函數,而不是語句。這樣能夠更輕鬆地更改模塊以使用不一樣的打印功能,以及使語法更加規則。在Python 2.6和2.7 print()中能夠做爲內置函數使用,可是被print語句語法屏蔽,能夠經過from future import print_function在文件頂部輸入來禁用它。

  • 刪除Python 2 input函數,並將函數重命名raw_input爲input。Python 3的input函數表現得像Python 2的raw_input函數,由於輸入老是做爲字符串返回,而不是做爲表達式進行求值。

  • 移動reduce(而不是map或filter)從內置的命名空間和成functools(其基本原理是,使用操做下降表達更清楚地使用累加循環);

  • 添加對可用於非正式類型聲明或其餘目的的可選功能註釋的支持;

  • 統一str/ unicodetypes,表示文本,並引入單獨的不可變bytes類型; 和一個主要對應的可變bytearray類型,二者都表明字節數組;

  • 刪除向後兼容性功能,包括舊式類,字符串異常和隱式相對導入。

  • 整數除法功能的變化:在Python 2中,5 / 2是2; 在Python 3中,5 / 2是2.5。(在Python 2(2.2起)和Python 3中5 // 2都是2)。

Python 3.x系列的後續版本包含了額外的實質性新功能; 全部正在進行的語言開發都是在3.x系列中完成的。

版本發佈歷史

主要版本和次要版本的發佈日期:

實施開始 - 1989年12月

  • Centrum Wiskunde&Informatica的內部發布- 1990年
    • Python 0.9.0 - 1991年2月20日
    • Python 0.9.1 - 1991年2月
    • Python 0.9.2 - 1991年秋季
    • Python 0.9.4 - 1991年12月24日
    • Python 0.9.5 - 1992年1月2日
    • Python 0.9.6 - 1992年4月6日
    • Python 0.9.8 - 1993年1月9日
    • Python 0.9.9 - 1993年7月29日
  • Python 1.0 - 1994年1月
    • Python 1.2 - 1995年4月10日
    • Python 1.3 - 1995年10月12日
    • Python 1.4 - 1996年10月25日
    • Python 1.5 - 1997年12月31日
    • Python 1.6 - 2000年9月5日
  • Python 2.0 - 2000年10月16日
    • Python 2.1 - 2001年4月15日
    • Python 2.2 - 2001年12月21日
    • Python 2.3 - 2003年7月29日
    • Python 2.4 - 2004年11月30日
    • Python 2.5 - 2006年9月19日
    • Python 2.6 - 2008年10月1日
    • Python 2.7 - 2010年7月3日
  • Python 3.0 - 2008年12月3日
    • Python 3.1 - 2009年6月27日
    • Python 3.2 - 2011年2月20日
    • Python 3.3 - 2012年9月29日
    • Python 3.4 - 2014年3月16日
    • Python 3.5 - 2015年9月13日
    • Python 3.6 - 2016年12月23日
    • Python 3.7 - 2018年6月27日
相關文章
相關標籤/搜索