闡述Python語(yǔ)法說(shuō)明介紹
對(duì)于Python的GIL和線程安全很多人不是很了解,通過(guò)本文,希望能讓大家對(duì)Python的GIL等內(nèi)容有所幫助。本文還將就主要談下筆者對(duì)線程安全的一些理解,希望大家能夠?qū)W習(xí)研究。
一個(gè)和其他大多數(shù)語(yǔ)言(如C)的區(qū)別就是,一個(gè)模塊的界限,完全是由每行的首字符在這一行的位置來(lái)決定的(而C語(yǔ)言是用一對(duì)花括號(hào){}來(lái)明確的定出模塊的邊界的,與字符的位置毫無(wú)關(guān)系)。
這一點(diǎn)曾經(jīng)引起過(guò)爭(zhēng)議。因?yàn)樽詮腃這類(lèi)的語(yǔ)言誕生后,語(yǔ)言的語(yǔ)法含義與字符的排列方式分離開(kāi)來(lái),曾經(jīng)被認(rèn)為是一種程序語(yǔ)言的進(jìn)步。不過(guò)不可否認(rèn)的是,通過(guò)強(qiáng)制程序員們縮進(jìn)(包括if,for和函數(shù)定義等所有需要使用模塊的地方),Python語(yǔ)法確實(shí)使得程序更加清晰和美觀。
另外Python在其他部分的設(shè)計(jì)上也堅(jiān)持了清晰劃一的風(fēng)格,這使得Python稱(chēng)為一門(mén)易讀性、易維護(hù)性好,并且被大量用戶所歡迎的、用途廣泛的語(yǔ)言。Python直接編寫(xiě)的程序段有時(shí)運(yùn)行效率甚至高于用C編寫(xiě)的程序。雖然Python是一個(gè)非常成功的語(yǔ)言,但對(duì)于習(xí)慣其他語(yǔ)言的程序員,有兩個(gè)地方會(huì)讓他們感覺(jué)略有不適。
1. 強(qiáng)制縮進(jìn)這也許不應(yīng)該被稱(chēng)為局限,但是它用縮進(jìn)來(lái)區(qū)分語(yǔ)句關(guān)系的方式還是給很多初學(xué)者帶來(lái)了困惑。即便是很有經(jīng)驗(yàn)的Python程序員,也可能陷入陷阱當(dāng)中。最常見(jiàn)的情況是tab和空格的混用會(huì)導(dǎo)致錯(cuò)誤,而這是用肉眼無(wú)法分別的。
2. 單行語(yǔ)句和命令行輸出問(wèn)題很多時(shí)候不能將程序連寫(xiě)成一行,如import sys;for i in sys.path:print i。而perl和awk就無(wú)此限制。
可以較為方便的在shell下完成簡(jiǎn)單程序,不需要如Python一樣,必須將程序?qū)懭胍粋€(gè).py文件。(對(duì)很多用戶而言這也不算是限制)
*** 運(yùn)行速度(雖然比java快,但沒(méi)法和需要編譯的語(yǔ)言相比)。有速度要求的話,用C++改寫(xiě)關(guān)鍵部分吧。
NO.2 國(guó)內(nèi)市場(chǎng)較小(國(guó)內(nèi)以python來(lái)做主要開(kāi)發(fā)的,目前只有一些 web2.0公司)。但時(shí)間推移,目前很多國(guó)內(nèi)軟件公司,尤其是游戲公司,也開(kāi)始規(guī)模使用他。
No.3 中文資料匱乏(好的Python語(yǔ)法中文資料***)。托社區(qū)的福,有幾本優(yōu)秀的教材已經(jīng)被翻譯了,但入門(mén)級(jí)教材多,高級(jí)內(nèi)容還是只能看英語(yǔ)版。
NO.4 構(gòu)架選擇太多(沒(méi)有像C#這樣的官方.net構(gòu)架,也沒(méi)有像ruby由于歷史較短,構(gòu)架開(kāi)發(fā)的相對(duì)集中。Ruby on Rails 構(gòu)架開(kāi)發(fā)中小型web程序天下無(wú)敵)。不過(guò)這也從另一個(gè)側(cè)面說(shuō)明,python比較優(yōu)秀,吸引的人才多,項(xiàng)目也多。Python作為一種功能強(qiáng)大且通用的編程語(yǔ)言而廣受好評(píng),它具有非常清晰的語(yǔ)法特點(diǎn),適用于多種操作系統(tǒng),目前在國(guó)際上非常流行,正在得到越來(lái)越多的應(yīng)用。
下面就讓我們一起來(lái)看看它的強(qiáng)大功能:
Python(派森),它是一個(gè)簡(jiǎn)單的、解釋型的、交互式的、可移植的、面向?qū)ο蟮某呒?jí)語(yǔ)言。這就是對(duì)Python語(yǔ)言的最簡(jiǎn)單的描述。Python有一個(gè)交互式的開(kāi)發(fā)環(huán)境,因?yàn)?FONT>Python是解釋運(yùn)行,這大大節(jié)省了每次編譯的時(shí)間。Python語(yǔ)法簡(jiǎn)單,且內(nèi)置有幾種高級(jí)數(shù)據(jù)結(jié)構(gòu)。
如字典、列表等,使得使用起來(lái)特別簡(jiǎn)單,程序員一個(gè)下午就可學(xué)會(huì),一般人員一周內(nèi)也可掌握。Python具大部分面向?qū)ο笳Z(yǔ)言的特征,可完全進(jìn)行面向?qū)ο缶幊?。它可以在MS-DOS、Windows、Windows NT、Linux、Soloris、Amiga、BeOS、OS/2、VMS、QNX等多種OS上運(yùn)行。
【編輯推薦】