1. Python發(fā)展歷史
起源
Python的作者洋满,Guido von Rossum,荷蘭人曼振。1982年,Guido從阿姆斯特丹大學(xué)獲得了數(shù)學(xué)和計算機碩士學(xué)位蔚龙。然而拴测,盡管他算得上是一位數(shù)學(xué)家,但他更加享受計算機帶來的樂趣府蛇。用他的話說,盡管擁有數(shù)學(xué)和計算機雙料資質(zhì)屿愚,他總趨向于做計算機相關(guān)的工作汇跨,并熱衷于做任何和編程相關(guān)的活兒。
在那個時候妆距,Guido接觸并使用過諸如Pascal穷遂、C、Fortran等語言娱据。這些語言的基本設(shè)計原則是讓機器能更快運行蚪黑。在80年代,雖然IBM和蘋果已經(jīng)掀起了個人電腦浪潮中剩,但這些個人電腦的配置很低忌穿。比如早期的Macintosh,只有8MHz的CPU主頻和128KB的RAM结啼,一個大的數(shù)組就能占滿內(nèi)存掠剑。所有的編譯器的核心是做優(yōu)化,以便讓程序能夠運行郊愧。為了增進(jìn)效率朴译,語言也迫使程序員像計算機一樣思考,以便能寫出更符合機器口味的程序属铁。在那個時代眠寿,程序員恨不得用手榨取計算機每一寸的能力。有人甚至認(rèn)為C語言的指針是在浪費內(nèi)存焦蘑。至于動態(tài)類型盯拱,內(nèi)存自動管理,面向?qū)ο蟆?別想了例嘱,那會讓你的電腦陷入癱瘓坟乾。
這種編程方式讓Guido感到苦惱。Guido知道如何用C語言寫出一個功能蝶防,但整個編寫過程需要耗費大量的時間甚侣,即使他已經(jīng)準(zhǔn)確的知道了如何實現(xiàn)。他的另一個選擇是shell间学。Bourne Shell作為UNIX系統(tǒng)的解釋器已經(jīng)長期存在殷费。UNIX的管理員們常常用shell去寫一些簡單的腳本印荔,以進(jìn)行一些系統(tǒng)維護(hù)的工作,比如定期備份详羡、文件系統(tǒng)管理等等仍律。shell可以像膠水一樣,將UNIX下的許多功能連接在一起实柠。許多C語言下上百行的程序水泉,在shell下只用幾行就可以完成。然而窒盐,shell的本質(zhì)是調(diào)用命令草则。它并不是一個真正的語言。比如說蟹漓,shell沒有數(shù)值型的數(shù)據(jù)類型炕横,加法運算都很復(fù)雜∑狭#總之份殿,shell不能全面的調(diào)動計算機的功能。
Guido希望有一種語言嗽交,這種語言能夠像C語言那樣卿嘲,能夠全面調(diào)用計算機的功能接口,又可以像shell那樣夫壁,可以輕松的編程腔寡。ABC語言讓Guido看到希望。ABC是由荷蘭的數(shù)學(xué)和計算機研究所開發(fā)的掌唾。Guido在該研究所工作放前,并參與到ABC語言的開發(fā)。ABC語言以教學(xué)為目的糯彬。與當(dāng)時的大部分語言不同凭语,ABC語言的目標(biāo)是“讓用戶感覺更好”。ABC語言希望讓語言變得容易閱讀撩扒,容易使用似扔,容易記憶,容易學(xué)習(xí)搓谆,并以此來激發(fā)人們學(xué)習(xí)編程的興趣炒辉。比如下面是一段來自Wikipedia的ABC程序,這個程序用于統(tǒng)計文本中出現(xiàn)的詞的總數(shù):
HOW TO RETURN words document:
????PUT {} IN collection
????FOR line IN document:
????????FOR word IN split line:
????????????IF word not.in collection:
????????????????INSERT word IN collection
????RETURN collection
HOW TO用于定義一個函數(shù)泉手。一個Python程序員應(yīng)該很容易理解這段程序黔寇。ABC語言使用冒號和縮進(jìn)來表示程序塊。行 尾沒有分號斩萌。for和if結(jié)構(gòu)中也沒有括號() 缝裤。賦值采用的是PUT屏轰,而不是更常見的等號。這些改動讓ABC程序讀起來像一段文字憋飞。 盡管已經(jīng)具備了良好的可讀性和易用性霎苗,ABC語言最終沒有流行起來。在當(dāng)時榛做,ABC語言編譯器需要比較高配置的電腦才能運行唁盏。而這些電腦的使用者通常精通計算機,他們更多考慮程序的效率检眯,而非它的學(xué)習(xí)難度厘擂。除了硬件上的困難外,ABC語言的設(shè)計也存在一些致命的問題: 可拓展性差轰传。ABC語言不是模塊化語言。如果想在ABC語言中增加功能瘪撇,比如對圖形化的支持获茬,就必須改動很多地方。 不能直接進(jìn)行IO倔既。ABC語言不能直接操作文件系統(tǒng)恕曲。盡管你可以通過諸如文本流的方式導(dǎo)入數(shù)據(jù),但ABC無法直接讀寫文 件渤涌。輸入輸出的困難對于計算機語言來說是致命的佩谣。你能想像一個打不開車門的跑車么? 過度革新实蓬。ABC用自然語言的方式來表達(dá)程序的意義茸俭,比如上面程序中的HOW TO 。然而對于程序員來說安皱,他們更習(xí)慣 用function或者define來定義一個函數(shù)调鬓。同樣,程序員更習(xí)慣用等號來分配變量酌伊。盡管ABC語言很特別腾窝,但學(xué)習(xí)難度 也很大。 傳播困難居砖。ABC編譯器很大虹脯,必須被保存在磁帶上。當(dāng)時Guido在訪問的時候奏候,就必須有一個大磁帶來給別人安裝ABC編 譯器循集。 這樣,ABC語言就很難快速傳播蔗草。 1989年暇榴,為了打發(fā)圣誕節(jié)假期厚棵,Guido開始寫Python語言的編譯器。Python這個名字蔼紧,來自Guido所摯愛的電視劇Monty Python's Flying Circus婆硬。他希望這個新的叫做Python的語言,能符合他的理想:創(chuàng)造一種C和shell之間奸例,功能全面彬犯,易學(xué)易用,可拓展的語言查吊。Guido作為一個語言設(shè)計愛好者谐区,已經(jīng)有過設(shè)計語言的嘗試。這一次逻卖,也不過是一次純粹的hacking行為宋列。
一門語言的誕生
1991年,第一個Python編譯器誕生评也。它是用C語言實現(xiàn)的炼杖,并能夠調(diào)用C語言的庫文件。從一出生盗迟,Python已經(jīng)具有了 :類坤邪,函數(shù),異常處理罚缕,包含表和詞典在內(nèi)的核心數(shù)據(jù)類型艇纺,以及模塊為基礎(chǔ)的拓展系統(tǒng)。 Python語法很多來自C邮弹,但又受到ABC語言的強烈影響黔衡。來自ABC語言的一些規(guī)定直到今天還富有爭議,比如強制縮進(jìn)腌乡。 但這些語法規(guī)定讓Python容易讀员帮。另一方面,Python聰明的選擇服從一些慣例导饲,特別是C語言的慣例捞高,比如回歸等號賦值。Guido認(rèn)為渣锦,如果“常識”上確立的東西硝岗,沒有必要過度糾結(jié)。 Python從一開始就特別在意可拓展性袋毙。Python可以在多個層次上拓展型檀。從高層上,你可以直接引入. py文件听盖。在底層胀溺,你可以引用C語言的庫裂七。Python程序員可以快速的使用Python寫. py文件作為拓展模塊。但當(dāng)性能是考慮的重要因素時仓坞,Python程序員可以深入底層背零,寫C程序,編譯為.so文件引入到Python中使用无埃。Python就好像是使用鋼構(gòu)建房一樣徙瓶,先規(guī)定好大的框架。而程序員可以在此框架下相當(dāng)自由的拓展或更 改嫉称。 最初的Python完全由Guido本人開發(fā)侦镇。Python得到Guido同事的歡迎。他們迅速的反饋使用意見织阅,并參與到Python的改進(jìn)壳繁。Guido和一些同事構(gòu)成Python的核心團隊。他們將自己大部分的業(yè)余時間用于hack Python荔棉。隨后闹炉,Python拓 展到研究所之外。Python將許多機器層面上的細(xì)節(jié)隱藏江耀,交給編譯器處理剩胁,并凸顯出邏輯層面的編程思考诉植。Python程 序員可以花更多的時間用于思考程序的邏輯祥国,而不是具體的實現(xiàn)細(xì)節(jié)。這一特征吸引了廣大的程序員晾腔。Python開始流行舌稀。
人生苦短,我用python
時勢造英雄
我們不得不暫停我們的Python時間灼擂,轉(zhuǎn)而看一看瞬息萬變的計算機行業(yè)壁查。1990年代初,個人計算機開始進(jìn)入普通家庭剔应。Intel發(fā)布了486處理器睡腿,windows發(fā)布window 3.0開始的一系列視窗系統(tǒng)峻贮。計算機的性能大大提高。程序員開始關(guān)注計算機的易用性纤控,比如圖形化界面。
Windows 3.0
由于計算機性能的提高刻撒,軟件的世界也開始隨之改變骨田。硬件足以滿足許多個人電腦的需要声怔。硬件廠商甚至渴望高需求軟 件的出現(xiàn),以帶動硬件的更新?lián)Q代捧搞。C++和Java相繼流行。C++和Java提供了面向?qū)ο蟮木幊谭妒浇檎常约柏S富的對象庫。在犧牲了一定的性能的代價下姻采,C++和Java大大提高了程序的產(chǎn)量。語言的易用性被提到一個新的高度爵憎。我們還記得 慨亲,ABC失敗的一個重要原因是硬件的性能限制。從這方面說宝鼓,Python要比ABC幸運許多刑棵。 另一個悄然發(fā)生的改變是Internet。1990年代還是個人電腦的時代愚铡,windows和Intel挾PC以令天下蛉签,盛極一時。盡管Internet為主體的信息革命尚未到來沥寥,但許多程序員以及資深計算機用戶已經(jīng)在頻繁使用Internet進(jìn)行交流碍舍,比如 使用email和newsgroup。Internet讓信息交流成本大大下降邑雅。一種新的軟件開發(fā)模式開始流行:開源片橡。程序員利用 業(yè)余時間進(jìn)行軟件開發(fā),并開放源代碼淮野。1991年捧书,Linus在comp.os.minix新聞組上發(fā)布了Linux內(nèi)核源代碼,吸引大批hacker的加入骤星。Linux和GNU相互合作经瓷,最終構(gòu)成了一個充滿活力的開源平臺。 硬件性能不是瓶頸妈踊,Python又容易使用了嚎,所以許多人開始轉(zhuǎn)向Python。Guido維護(hù)了一個maillist,Python用戶就通過郵件進(jìn)行交流歪泳。Python用戶來自許多領(lǐng)域萝勤,有不同的背景,對Python也有不同的需求呐伞。Python相當(dāng)?shù)拈_放敌卓,又容 易拓展,所以當(dāng)用戶不滿足于現(xiàn)有功能伶氢,很容易對Python進(jìn)行拓展或改造趟径。隨后,這些用戶將改動發(fā)給Guido癣防,并由Gu ido決定是否將新的特征加入到Python或者標(biāo)準(zhǔn)庫中蜗巧。如果代碼能被納入Python自身或者標(biāo)準(zhǔn)庫蕾盯,這將極大的榮譽。由于Guido至高無上的決定權(quán)望拖,他因此被稱為“終身的仁慈獨裁者”挫鸽。 Python被稱為“Battery Included”丢郊,是說它以及其標(biāo)準(zhǔn)庫的功能強大。這些是整個社區(qū)的貢獻(xiàn)迅诬。Python的開發(fā)者來自不同領(lǐng)域婿牍,他們將不同領(lǐng)域的優(yōu)點帶給Python等脂。比如Python標(biāo)準(zhǔn)庫中的正則表達(dá)是參考Perl上遥,而lambda, map, filter, reduce等函數(shù)參考了Lisp粉楚。Python本身的一些功能以及大部分的標(biāo)準(zhǔn)庫來自于社區(qū)模软。Python的社 區(qū)不斷擴大,進(jìn)而擁有了自己的newsgroup携狭,網(wǎng)站逛腿,以及基金仅颇。從Python 2.0開始忘瓦,Python也從maillist的開發(fā)方式,轉(zhuǎn)為完全開源的開發(fā)方式枚抵。社區(qū)氣氛已經(jīng)形成汽摹,工作被整個社區(qū)分擔(dān)逼泣,Python也獲得了更加高速的發(fā)展拉庶。 到今天秃励,Python的框架已經(jīng)確立夺鲜。Python語言以對象為核心組織代碼,支持多種編程范式慷蠕,采用動態(tài)類型流炕,自動進(jìn)行內(nèi)存回收。Python支持解釋運行昔头,并能調(diào)用C庫進(jìn)行拓展揭斧。Python有強大的標(biāo)準(zhǔn)庫峻堰。由于標(biāo)準(zhǔn)庫的體系已經(jīng)穩(wěn)定捐名,所以Python的生態(tài)系統(tǒng)開始拓展到第三方包。這些包成艘,如Django淆两、web.py拂酣、wxpython婶熬、numpy、matplotlib虽另、PIL捂刺,將Python升級成了物種豐富的熱帶雨林叠萍。
啟示錄
Python崇尚優(yōu)美绪商、清晰格郁、簡單,是一個優(yōu)秀并廣泛使用的語言锣尉。Python在TIOBE排行榜中排行第八自沧,它是Google的第三大開發(fā)語言拇厢,Dropbox的基礎(chǔ)語言晒喷,豆瓣的服務(wù)器語言凉敲。Python的發(fā)展史可以作為一個代表,帶給我許多啟示势决。 在Python的開發(fā)過程中徽龟,社區(qū)起到了重要的作用极颓。Guido自認(rèn)為自己不是全能型的程序員菠隆,所以他只負(fù)責(zé)制訂框架骇径。如果問題太復(fù)雜破衔,他會選擇繞過去晰筛,也就是cut the corner。這些問題最終由社區(qū)中的其他人解決曙博。社區(qū)中的人才是異常豐富的父泳,就連創(chuàng)建網(wǎng)站尘吗,籌集基金這樣與開發(fā)稍遠(yuǎn)的事情浇坐,也有人樂意于處理近刘。如今的項目開發(fā)越來越復(fù)雜,越來越龐大介劫,合作以及開放的心態(tài)成為項目最終成功的關(guān)鍵座韵。 Python從其他語言中學(xué)到了很多誉碴,無論是已經(jīng)進(jìn)入歷史的ABC瓣距,還是依然在使用的C和Perl蹈丸,以及許多沒有列出的其他 語言逻杖。可以說闻伶,Python的成功代表了它所有借鑒的語言的成功虾攻。同樣更鲁,Ruby借鑒了Python,它的成功也代表了Python某些方面的成功漂坏。每個語言都是混合體顶别,都有它優(yōu)秀的地方驯绎,但也有各種各樣的缺陷谋旦。同時册着,一個語言“好與不好”的評 判,往往受制于平臺演熟、硬件芒粹、時代等等外部原因是辕。程序員經(jīng)歷過許多語言之爭猎提。其實锨苏,以開放的心態(tài)來接受各個語言,說不定哪一天贞谓,程序員也可以如Guido那樣裸弦,混合出自己的語言。
關(guān)鍵點常識
Python的發(fā)音與拼寫
Python的意思是蟒蛇晕城,源于作者喜歡的一部電視劇 (C呢砖顷?)
Python的作者是Guido van Rossum(龜叔)
Python是龜叔在1989年圣誕節(jié)期間滤蝠,為了打發(fā)無聊的圣誕節(jié)而用C編寫的一個編程語言
Python正式誕生于1991年
Python的解釋器如今有多個語言實現(xiàn)授嘀,我們常用的是CPython(官方版本的C語言實現(xiàn))蹄皱,其他還有Jython(可以運行在Java平臺)、IronPython(可以運行在.NET和Mono平臺)焕济、PyPy(Python實現(xiàn)的晴弃,支持JIT即時編譯)
Python目前有兩個版本上鞠,Python2和Python3芍阎,最新版分別為2.7.12和3.5.2缨恒,現(xiàn)階段大部分公司用的是Python2
Life is shot, you need Python. 人生苦短骗露,我用Python。
2017年1月份 編程語言流行排行榜 編程語言排行榜
2. Python優(yōu)缺點
優(yōu)點
簡單————Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣,盡管這個英語的要求非常嚴(yán)格鲫凶!Python的這種偽代碼本質(zhì)是它最大的優(yōu)點之一螟炫。它使你能夠?qū)W⒂诮鉀Q問題而不是去搞明白語言本身不恭。
易學(xué)————就如同你即將看到的一樣财饥,Python極其容易上手钥星。前面已經(jīng)提到了满着,Python有極其簡單的語法风喇。
免費、開源————Python是FLOSS(自由/開放源碼軟件)之一还蹲。簡單地說谜喊,你可以自由地發(fā)布這個軟件的拷貝斗遏、閱讀它的源代碼诵次、對它做改動枚碗、把它的一部分用于新的自由軟件中视译。FLOSS是基于一個團體分享知識的概念。這是為什么Python如此優(yōu)秀的原因之一——它是由一群希望看到一個更加優(yōu)秀的Python的人創(chuàng)造并經(jīng)常改進(jìn)著的鄙早。
高層語言————當(dāng)你用Python語言編寫程序的時候限番,你無需考慮諸如如何管理你的程序使用的內(nèi)存一類的底層細(xì)節(jié)。
可移植性————由于它的開源本質(zhì)扩灯,Python已經(jīng)被移植在許多平臺上(經(jīng)過改動使它能夠工作在不同平臺上)珠插。如果你小心地避免使用依賴于系統(tǒng)的特性捻撑,那么你的所有Python程序無需修改就可以在下述任何平臺上面運行顾患。這些平臺包括Linux个唧、Windows徙歼、FreeBSD、Macintosh呼股、Solaris彭谁、OS/2缠局、Amiga考润、AROS糊治、AS/400、BeOS管闷、OS/390窃肠、z/OS冤留、Palm OS、QNX糯而、VMS歧蒋、Psion州既、Acom RISC OS吴叶、VxWorks蚌卤、PlayStation逊彭、Sharp Zaurus构订、Windows CE甚至還有PocketPC悼瘾、Symbian以及Google基于linux開發(fā)的Android平臺!
解釋性————這一點需要一些解釋卸勺。一個用編譯性語言比如C或C++寫的程序可以從源文件(即C或C++語言)轉(zhuǎn)換到一個你的計算機使用的語言(二進(jìn)制代碼曙求,即0和1)悟狱。這個過程通過編譯器和不同的標(biāo)記芽淡、選項完成。當(dāng)你運行你的程序的時候富稻,連接/轉(zhuǎn)載器軟件把你的程序從硬盤復(fù)制到內(nèi)存中并且運行椭赋。而Python語言寫的程序不需要編譯成二進(jìn)制代碼哪怔。你可以直接從源代碼運行程序认境。在計算機內(nèi)部挟鸠,Python解釋器把源代碼轉(zhuǎn)換成稱為字節(jié)碼的中間形式艘希,然后再把它翻譯成計算機使用的機器語言并運行覆享。事實上,由于你不再需要擔(dān)心如何編譯程序丑罪,如何確保連接轉(zhuǎn)載正確的庫等等巍糯,所有這一切使得使用Python更加簡單祟峦。由于你只需要把你的Python程序拷貝到另外一臺計算機上徙鱼,它就可以工作了,這也使得你的Python程序更加易于移植厌衙。
面向?qū)ο蟆狿ython既支持面向過程的編程也支持面向?qū)ο蟮木幊獭T凇懊嫦蜻^程”的語言中榕暇,程序是由過程或僅僅是可重用代碼的函數(shù)構(gòu)建起來的彤枢。在“面向?qū)ο蟆钡恼Z言中筒饰,程序是由數(shù)據(jù)和功能組合而成的對象構(gòu)建起來的瓷们。與其他主要的語言如C++和Java相比,Python以一種非常強大又簡單的方式實現(xiàn)面向?qū)ο缶幊獭?/p>
可擴展性————如果你需要你的一段關(guān)鍵代碼運行得更快或者希望某些算法不公開碘裕,你可以把你的部分程序用C或C++編寫娘汞,然后在你的Python程序中使用它們夕玩。
豐富的庫————Python標(biāo)準(zhǔn)庫確實很龐大燎孟。它可以幫助你處理各種工作揩页,包括正則表達(dá)式爆侣、文檔生成幢妄、單元測試、線程乎赴、數(shù)據(jù)庫、網(wǎng)頁瀏覽器饿序、CGI原探、FTP顽素、電子郵件戈抄、XML、XML-RPC输莺、HTML嫂用、WAV文件嘱函、密碼系統(tǒng)埂蕊、GUI(圖形用戶界面)蓄氧、Tk和其他與系統(tǒng)有關(guān)的操作。記住撇寞,只要安裝了Python蔑担,所有這些功能都是可用的咽白。這被稱作Python的“功能齊全”理念局扶。除了標(biāo)準(zhǔn)庫以外,還有許多其他高質(zhì)量的庫畜埋,如wxPython、Twisted和Python圖像庫等等对室。
規(guī)范的代碼————Python采用強制縮進(jìn)的方式使得代碼具有極佳的可讀性掩宜。
缺點
運行速度么翰,有速度要求的話浩嫌,用C++改寫關(guān)鍵部分吧码耐。
國內(nèi)市場較小(國內(nèi)以python來做主要開發(fā)的敦间,目前只有一些web2.0公司)廓块。但時間推移纯露,目前很多國內(nèi)軟件公司埠褪,尤其是游戲公司,也開始規(guī)模使用他嫡秕。
中文資料匱乏(好的python中文資料屈指可數(shù))。托社區(qū)的福驾凶,有幾本優(yōu)秀的教材已經(jīng)被翻譯了调违,但入門級教材多技肩,高級內(nèi)容還是只能看英語版。
構(gòu)架選擇太多(沒有像C#這樣的官方.net構(gòu)架旋奢,也沒有像ruby由于歷史較短至朗,構(gòu)架開發(fā)的相對集中锹引。Ruby on Rails 構(gòu)架開發(fā)中小型web程序天下無敵)粤蝎。不過這也從另一個側(cè)面說明袋马,python比較優(yōu)秀虑凛,吸引的人才多,項目也多延柠。
3. Python應(yīng)用場景
Web應(yīng)用開發(fā)
Python經(jīng)常被用于Web開發(fā)贞间。比如增热,通過mod_wsgi模塊峻仇,Apache可以運行用Python編寫的Web程序凡蚜。Python定義了WSGI標(biāo)準(zhǔn)應(yīng)用接口來協(xié)調(diào)Http服務(wù)器與基于Python的Web程序之間的通信朝蜘。一些Web框架,如Django,TurboGears,web2py,Zope等影锈,可以讓程序員輕松地開發(fā)和管理復(fù)雜的Web程序芹务。
操作系統(tǒng)管理、服務(wù)器運維的自動化腳本
在很多操作系統(tǒng)里鸭廷,Python是標(biāo)準(zhǔn)的系統(tǒng)組件枣抱。 大多數(shù)Linux發(fā)行版以及NetBSD、OpenBSD和Mac OS X都集成了Python辆床,可以在終端下直接運行Python佳晶。有一些Linux發(fā)行版的安裝器使用Python語言編寫,比如Ubuntu的Ubiquity安裝器,Red Hat Linux和Fedora的Anaconda安裝器讼载。Gentoo Linux使用Python來編寫它的Portage包管理系統(tǒng)轿秧。Python標(biāo)準(zhǔn)庫包含了多個調(diào)用操作系統(tǒng)功能的庫。通過pywin32這個第三方軟件 包菇篡,Python能夠訪問Windows的COM服務(wù)及其它Windows API凸克。使用IronPython,Python程序能夠直接調(diào)用.Net Framework戳粒。一般說來孝鹊,Python編寫的系統(tǒng)管理腳本在可讀性苔咪、性能耐薯、代碼重用度、擴展性幾方面都優(yōu)于普通的shell腳本抒痒。
科學(xué)計算
NumPy,SciPy,Matplotlib可以讓Python程序員編寫科學(xué)計算程序彩届。
桌面軟件
PyQt丰捷、PySide、wxPython耍攘、PyGTK是Python快速開發(fā)桌面應(yīng)用程序的利器式曲。
服務(wù)器軟件(網(wǎng)絡(luò)軟件)
Python對于各種網(wǎng)絡(luò)協(xié)議的支持很完善兰伤,因此經(jīng)常被用于編寫服務(wù)器軟件符衔、網(wǎng)絡(luò)爬蟲。第三方庫Twisted支持異步網(wǎng)絡(luò)編程和多數(shù)標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議(包含客戶端和服務(wù)器)肯尺,并且提供了多種工具,被廣泛用于編寫高性能的服務(wù)器軟件。
游戲
很多游戲使用C++編寫圖形顯示等高性能模塊晰洒,而使用Python或者Lua編寫游戲的邏輯砌滞、服務(wù)器打掘。相較于Python,Lua的功能更簡單惜纸、體積更蟹嗌亭引;而Python則支持更多的特性和數(shù)據(jù)類型购公。
構(gòu)思實現(xiàn)橡庞,產(chǎn)品早期原型和迭代
YouTube、Google、Yahoo!、NASA都在內(nèi)部大量地使用Python梨树。