Python的設計理念和優缺點

  可擴充性可說是Python做爲一種編程語言的特點。新的內置模塊(module)能夠用C 或 C++寫成。而咱們也可爲現成的模塊加上Python的接口。Python可使用戶避免過度的語法的羈絆而將精力主要集中到所要實現的程序任務上。
  Python也被稱爲是一門清晰的語言。由於它的做者在設計它的時候,總的指導思想是,對於一個特定的問題,只要有一種最好的方法來解決就行了。這在由Tim Peters寫的python格言(稱爲The Zen of Python)裏面表述爲:
  There should be one-- and preferably only one --obvious way to do it.
  有意思的是,這正好和Perl語言(另外一種功能相似的高級 動態語言)的中心思想TMTOWTDI(There's More Than One Way To Do It)徹底相反。這彷佛是人們常把Perl和Python互相比較的重要緣由。
  Python語言是一種清晰的語言的另外一個意思是,它的做者有意的設計限制性很強的語法,使得很差的編程習慣(例如if語句的下一行不向右縮進)都不能經過編譯。這樣有意的強制程序員養成良好的編程習慣。其中很重要的一項就是Python的縮進規則。
  例如if語句:
  if age<21:
  print "You cannot buy wine!\n"
  print "But you can buy chewing gum.\n"
  print "this is outside if\n"
  一個和其餘大多數語言(如C)的區別就是,一個模塊的界限,徹底是由每行的首字符在這一行的位 置來決定的(而C語言是用一對花括號{}來明確的定出模塊的邊界的,與字符的位置毫無關係)。這一點曾經引發過爭議。由於自從C這類的語言誕生後,語言的 語法含義與字符的排列方式分離開來,曾經被認爲是一種程序語言的進步。不過不能否認的是,經過強制程序員們縮進(包括if,for和函數定義等全部須要使 用模塊的地方),Python確實使得程序更加清晰和美觀。
  另外Python在其餘部分的設計上也堅持了清晰劃一的風格,這使得Python稱爲一門易讀性、易維護性好,而且被大量用戶所歡迎的、用途普遍的語言。Python直接編寫的程序段有時運行效率甚至高於用C編寫的程序。

優勢


  簡單————Python是一種表明簡單主義思想的語言。閱讀一個良好的Python程序就感受像是在讀英語同樣,儘管這個英語的要求很是嚴格!Python的這種僞代碼本質是它最大的優勢之一。它使你可以專一於解決問題而不是去搞明白語言自己。
  易學————就如同你即將看到的同樣,Python極其容易上手。前面已經提到了,Python有極其簡單的語法。
  免費、開源————Python是FLOSS(自由/開放源碼軟件)之一。簡單地說,你能夠自 由地發佈這個軟件的拷貝、閱讀它的源代碼、對它作改動、把它的一部分用於新的自由軟件中。FLOSS是基於一個團體分享知識的概念。這是爲何 Python如此優秀的緣由之一——它是由一羣但願看到一個更加優秀的Python的人創造並常常改進着的。
  高層語言————當你用Python語言編寫程序的時候,你無需考慮諸如如何管理你的程序使用的內存一類的底層細節。
  可移植性————因爲它的開源本質,Python已經被移植在許多平臺上(通過改動使它可以工 做在不一樣平臺上)。若是你當心地避免使用依賴於系統的特性,那麼你的全部Python程序無需修改就能夠在下述任何平臺上面運行。這些平臺包括 Linux、Windows、FreeBSD、Macintosh、Solaris、OS/二、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!
  解釋性————這一點須要一些解釋。一個用編譯性語言好比C或C++寫的程序能夠從源文件(即 C或C++語言)轉換到一個你的計算機使用的語言(二進制代碼,即0和1)。這個過程經過編譯器和不一樣的標記、選項完成。當你運行你的程序的時候,鏈接/ 轉載器軟件把你的程序從硬盤複製到內存中而且運行。而Python語言寫的程序不須要編譯成二進制代碼。你能夠直接從源代碼 運行 程序。在計算機內部,Python 解釋器把 源代碼轉換成稱爲字節碼的中間形式,而後再把它翻譯成計算機使用的機器語言並運行。事實上,因爲你再也不須要擔憂如何編譯程序,如何確保鏈接轉載正確的庫等 等,全部這一切使得使用Python更加簡單。因爲你只須要把你的Python程序拷貝到另一臺計算機上,它就能夠工做了,這也使得你的Python程 序更加易於移植。
  面向對象————Python既支持面向過程的編程也支持面向對象的編程。在「面向過程」的語 言中,程序是由過程或僅僅是可重用代碼的函數構建起來的。在「面向對象」的語言中,程序是由數據和功能組合而成的對象構建起來的。與其餘主要的語言如 C++和Java相比,Python以一種很是強大又簡單的方式實現面向對象編程。
  可擴展性————若是你須要你的一段關鍵代碼運行得更快或者但願某些算法不公開,你能夠把你的部分程序用C或C++編寫,而後在你的Python程序中使用它們。
  可嵌入性————你能夠把Python嵌入你的C/C++程序,從而向你的程序用戶提供腳本功能。
  豐富的庫————Python標準庫確實很龐大。它能夠幫助你處理各類工做,包括正則表達式、 文檔生成、單元測試、線程、數據庫、網頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統、GUI(圖形用戶 界面)、Tk和其餘與系統有關的操做。記住,只要安裝了Python,全部這些功能都是可用的。這被稱做Python的「功能齊全」理念。除了標準庫以 外,還有許多其餘高質量的庫,如wxPython、Twisted和Python圖像庫等等。
  歸納————Python確實是一種十分精彩又強大的語言。它合理地結合了高性能與使得編寫程序簡單有趣的特點。

缺點


   1. 強制縮進
  這也許不該該被稱爲侷限,可是它用縮進來區分語句關係的方式仍是給不少初學者帶來了困惑。即使是頗有經驗的Python程序員,也可能陷入陷阱當中。最多見的狀況是tab和空格的混用會致使錯誤,而這是用肉眼沒法分別的。
  2. 單行語句和命令行輸出問題
  不少時候不能將程序連寫成一行,如import sys;for i in sys.path:print i。而perl和awk就無此限制,能夠較爲方便的在shell下完成簡單程序,不須要如Python同樣,必須將程序寫入一個.py文件。(對不少用戶 而言這也不算是限制)
  

  NO.1 運行速度(雖然比java快,但無法和須要編譯的語言相比)。有速度要求的話,用C++改寫關鍵部分吧。
  NO.2 國內市場較小(國內以python來作主要開發的,目前只有一些 web2.0公司)。但時間推移,目前不少國內軟件公司,尤爲是遊戲公司,也開始規模使用他。
  No.3 中文資料匱乏(好的python中文資料屈指可數)。託社區的福,有幾本優秀的教材已經被翻譯了,但入門級教材多,高級內容仍是隻能看英語版。
  NO.4 構架選擇太多(沒有像C#這樣的官方.net構架,也沒有像ruby因爲歷史較短,構架開發的相對集中。Ruby on Rails 構架開發中小型web程序天下無敵)。不過這也從另外一個側面說明,python比較優秀,吸引的人才多,項目也多。

「七」樂無窮,盡在新浪新版博客,快來體驗啊~~~請點擊進入~html

相關文章
相關標籤/搜索