顯然,這是開(kāi)發(fā)者關(guān)心的問(wèn)題。如果你目前還沒(méi)有程序設(shè)計(jì)背景,接下來(lái)的這些章節(jié)可能會(huì)顯得有些令人費(fèi)解:別擔(dān)心,在本書(shū)中我們將會(huì)對(duì)這些內(nèi)容逐一做出詳細(xì)解釋。那么對(duì)于開(kāi)發(fā)者來(lái)說(shuō),這將是對(duì)Python一些最優(yōu)的技術(shù)特性的快速介紹。
面向?qū)ο?/p>
從根本上講,Python是一種面向?qū)ο蟮恼Z(yǔ)言。它的類(lèi)模塊支持多態(tài)、操作符重載和多重繼承等高級(jí)概念,并且以Python特有的簡(jiǎn)潔的語(yǔ)法和類(lèi)型,OOP十分易于使用。事實(shí)上,即使你不懂這些術(shù)語(yǔ),仍會(huì)發(fā)現(xiàn)學(xué)習(xí)Python比學(xué)習(xí)其他OOP語(yǔ)言要容易得多。
除了作為一種強(qiáng)大的代碼構(gòu)建和重用手段以外,Python的OOP特性使它成為面向?qū)ο笙到y(tǒng)語(yǔ)言如C++和Java的理想腳本工具。例如,通過(guò)適當(dāng)?shù)恼辰哟a,Python程序可以對(duì)C++、Java和C#的類(lèi)進(jìn)行子類(lèi)的定制。
OOP是Python的一個(gè)選擇而已,這一點(diǎn)非常重要。不必強(qiáng)迫自己立馬成為一個(gè)面向?qū)ο蟾呤?,你同樣可以繼續(xù)深入學(xué)習(xí)。就像C++一樣,Python既支持面向?qū)ο缶幊桃仓С置嫦蜻^(guò)程編程的模式。如果條件允許的話(huà),其面向?qū)ο蟮墓ぞ呒纯躺?。這對(duì)處于預(yù)先設(shè)計(jì)階段的策略開(kāi)發(fā)模式十分有用。
免費(fèi)
Python的使用和分發(fā)是完全免費(fèi)的。就像其他的開(kāi)源軟件一樣,例如,Tcl、Perl、Linux和Apache。你可以從Internet上免費(fèi)獲得Python系統(tǒng)的源代碼。復(fù)制Python,將其嵌入你的系統(tǒng)或者隨產(chǎn)品一起發(fā)布都沒(méi)有任何限制。實(shí)際上,如果你愿意的話(huà),甚至可以銷(xiāo)售它的源代碼。
但請(qǐng)別誤會(huì):"免費(fèi)"并不代表"無(wú)支持"。恰恰相反,Python的在線(xiàn)社區(qū)對(duì)用戶(hù)需求的響應(yīng)和商業(yè)軟件一樣快。而且,由于Python完全開(kāi)放源代碼,提高了開(kāi)發(fā)者的實(shí)力,并產(chǎn)生了一個(gè)很大的專(zhuān)家團(tuán)隊(duì)。盡管學(xué)習(xí)研究或改變一個(gè)程序語(yǔ)言的實(shí)現(xiàn)并不是對(duì)每一個(gè)人來(lái)說(shuō)都那么有趣,但是當(dāng)你知道還有源代碼作為最終的幫助和無(wú)盡的文檔資源是多么的令人欣慰。你不需要去依賴(lài)商業(yè)廠(chǎng)商。
Python的開(kāi)發(fā)是由社區(qū)驅(qū)動(dòng)的,是Internet大范圍的協(xié)同合作努力的結(jié)果。這個(gè)團(tuán)體包括Python的創(chuàng)始者GuidovanRossum:Python社區(qū)內(nèi)公認(rèn)的"終身的慈善獨(dú)裁者"[BenevolentDictatorforLife(BDFL)]。Python語(yǔ)言的改變必須遵循一套規(guī)范的有約束力的程序(稱(chēng)作PEP流程),并需要經(jīng)過(guò)規(guī)范的測(cè)試系統(tǒng)和BDFL進(jìn)行徹底檢查。值得慶幸的是,正是這樣使得Python相對(duì)于其他語(yǔ)言可以保守地持續(xù)改進(jìn)。
可移植
Python的標(biāo)準(zhǔn)實(shí)現(xiàn)是由可移植的ANSIC編寫(xiě)的,可以在目前所有的主流平臺(tái)上編譯和運(yùn)行。例如,如今從PDA到超級(jí)計(jì)算機(jī),到處可以見(jiàn)到Python在運(yùn)行。Python可以在下列平臺(tái)上運(yùn)行(這里只是部分列表):
Linux和UNIX系統(tǒng)。
微軟Windows和DOS(所有版本)。
MacOS(包括OSX和Classic)。
BeOS、OS/2、VMS和QNX。
實(shí)時(shí)操作系統(tǒng),例如,VxWorks。
Cray超級(jí)計(jì)算機(jī)和IBM大型機(jī)。
運(yùn)行PalmOS、PocketPC和Linux的PDA。
運(yùn)行WindowsMobile和SymbianOS的移動(dòng)電話(huà)。
游戲終端和iPod。
還有更多。
除了語(yǔ)言解釋器本身以外,Python發(fā)行時(shí)自帶的標(biāo)準(zhǔn)庫(kù)和模塊在實(shí)現(xiàn)上也都盡可能地考慮到了跨平臺(tái)的移植性。此外,Python程序自動(dòng)編譯成可移植的字節(jié)碼,這些字節(jié)碼在已安裝兼容版本Python的平臺(tái)上運(yùn)行的結(jié)果都是相同的。
這些意味著Python程序的核心語(yǔ)言和標(biāo)準(zhǔn)庫(kù)可以在Linux、Windows和其他帶有Python解釋器的平臺(tái)無(wú)差別的運(yùn)行。大多數(shù)Python外圍接口都有平臺(tái)相關(guān)的擴(kuò)展(例如,COM支持Windows),但是核心語(yǔ)言和庫(kù)在任何平臺(tái)都一樣。就像之前我們提到的那樣,Python還包含了一個(gè)叫做Tkinter的TkGUI工具包,它可以使Python程序?qū)崿F(xiàn)功能完整的無(wú)需做任何修改即可在所有主流GUI平臺(tái)運(yùn)行的用戶(hù)圖形界面。
功能強(qiáng)大
從特性的觀(guān)點(diǎn)來(lái)看,Python是一個(gè)混合體。它豐富的工具集使它介于傳統(tǒng)的腳本語(yǔ)言(例如,Tcl、Scheme和Perl)和系統(tǒng)語(yǔ)言(例如,C、C++和Java)之間。Python提供了所有腳本語(yǔ)言的簡(jiǎn)單和易用性,并且具有在編譯語(yǔ)言中才能找到的高級(jí)軟件工程工具。不像其他腳本語(yǔ)言,這種結(jié)合使Python在長(zhǎng)期大型的開(kāi)發(fā)項(xiàng)目中十分有用。下面是一些Python工具箱中的工具簡(jiǎn)介。
動(dòng)態(tài)類(lèi)型Python在運(yùn)行過(guò)程中隨時(shí)跟蹤對(duì)象的種類(lèi),不需要代碼中關(guān)于復(fù)雜的類(lèi)型和大小的聲明。事實(shí)上,你將在第6章中看到,Python中沒(méi)有類(lèi)型或變量聲明這回事。因?yàn)镻ython代碼不是約束數(shù)據(jù)的類(lèi)型,它往往自動(dòng)地應(yīng)用了一種廣義上的對(duì)象。
自動(dòng)內(nèi)存管理Python自動(dòng)進(jìn)行對(duì)象分配,當(dāng)對(duì)象不再使用時(shí)將自動(dòng)撤銷(xiāo)對(duì)象("垃圾回收"),當(dāng)需要時(shí)自動(dòng)擴(kuò)展或收縮。Python能夠代替你進(jìn)行底層的內(nèi)存管理。
大型程序支持為了能夠建立更大規(guī)模的系統(tǒng),Python包含了模塊、類(lèi)和異常等工具。這些工具允許你組織系統(tǒng)為組件,使用OOP重用并定制代碼,并以一種優(yōu)雅的方式處理事件和錯(cuò)誤。
內(nèi)置對(duì)象類(lèi)型Python提供了常用的數(shù)據(jù)結(jié)構(gòu)作為語(yǔ)言的基本組成部分。例如,列表(list)、字典(dictionary)、字符串(string)。我們將會(huì)看到,它們靈活并易于使用。例如,內(nèi)置對(duì)象可以根據(jù)需求擴(kuò)展或收縮,可以任意地組織復(fù)雜的信息等。
內(nèi)置工具為了對(duì)以上對(duì)象類(lèi)型進(jìn)行處理,Python自帶了許多強(qiáng)大的標(biāo)準(zhǔn)操作,包括合并(concatenation)、分片(slice)、排序(sort)和映射(mapping)等。
庫(kù)工具為了完成更多特定的任務(wù),Python預(yù)置了許多預(yù)編碼的庫(kù)工具,從正則表達(dá)式匹配到網(wǎng)絡(luò)都支持。Python的庫(kù)工具在很多應(yīng)用級(jí)的操作中發(fā)揮作用。
第三方工具由于Python是開(kāi)放源代碼的,它鼓勵(lì)開(kāi)發(fā)者提供Python內(nèi)置工具之外的預(yù)編碼工具。從網(wǎng)絡(luò)上,可以找到COM、圖像處理、CORBAORB、XML、數(shù)據(jù)庫(kù)等很多免費(fèi)的支持工具。
除了這一系列的Python工具外,Python保持了相當(dāng)簡(jiǎn)潔的語(yǔ)法和設(shè)計(jì)。綜合這一切得到的就是一個(gè)具有腳本語(yǔ)言所有可用性的強(qiáng)大編程工具。
可混合
Python程序可以以多種方式輕易地與其他語(yǔ)言編寫(xiě)的組件"粘接"在一起。例如,Python的C語(yǔ)言API可以幫助Python程序靈活地調(diào)用C程序。這意味著可以根據(jù)需要給Python程序添加功能,或者在其他環(huán)境系統(tǒng)中使用Python。例如,將Python與C或者C++寫(xiě)成的庫(kù)文件混合起來(lái),使Python成為一個(gè)前端語(yǔ)言和定制工具。就像之前我們所提到過(guò)的那樣,這使Python成為一個(gè)很好的快速原型工具;首先出于開(kāi)發(fā)速度的考慮,系統(tǒng)可以先使用Python實(shí)現(xiàn),之后轉(zhuǎn)移至C,根據(jù)不同時(shí)期性能的需要逐步實(shí)現(xiàn)系統(tǒng)。
使用簡(jiǎn)單
運(yùn)行Python程序,只需要簡(jiǎn)單地鍵入Python程序并運(yùn)行就可以了。不需要其他語(yǔ)言(例如,C或C++)所必須的編譯和鏈接等中間步驟。Python可立即執(zhí)行程序,這形成了一種交互式編程體驗(yàn)和不同情況下快速調(diào)整的能力,往往在修改代碼后能立即看到程序改變后的效果。
當(dāng)然,開(kāi)發(fā)周期短僅僅是Python易用性的一方面的體現(xiàn)。Python提供了簡(jiǎn)潔的語(yǔ)法和強(qiáng)大的內(nèi)置工具。實(shí)際上,Python曾有種說(shuō)法叫做"可執(zhí)行的偽代碼"。由于它減少了其他工具常見(jiàn)的復(fù)雜性,當(dāng)實(shí)現(xiàn)相同的功能時(shí),用Python程序比采用C、C++和Java編寫(xiě)的程序更為簡(jiǎn)單、小巧,也更靈活。
以上內(nèi)容為大家介紹了python有哪些技術(shù)上的優(yōu)點(diǎn),希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://www.em-kal.com/