新聞中心
對(duì)于Python語(yǔ)言的奧秘我有許多要說的話,首先個(gè)人認(rèn)為Python語(yǔ)言是一種面向?qū)ο蟆⒅弊g式計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,也是一種功能強(qiáng)大而完善的通用型語(yǔ)言,也是對(duì)初學(xué)者非常有益的一門語(yǔ)言。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比番禺網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式番禺網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋番禺地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。
我之所以放棄PHP,原因首先是語(yǔ)言。PHP實(shí)際上不是一種語(yǔ)言,而是一種巨大的插件結(jié)構(gòu),以一種高層的形式來展示低層的庫(kù)。而大部分開發(fā)者使用的語(yǔ)言實(shí)際上是對(duì)C功能 (curl, mysql, gd, etc.)的包裝,通常情況下它們的庫(kù)展示得很簡(jiǎn)單。因而這導(dǎo)致了PHP的API不一致。
PHP語(yǔ)言的第二個(gè)問題是Python語(yǔ)言的管理問題。PHP語(yǔ)言實(shí)際上是由委員會(huì)來設(shè)計(jì)的,而且沒有人來制定任何共識(shí)性的標(biāo)準(zhǔn)。PEAR有自己的標(biāo)準(zhǔn),PHP有自己的標(biāo)準(zhǔn),這導(dǎo)致SPL classes更具Java風(fēng)格,而PEAR卻截然不同。
從事PHP開發(fā)11年來,我認(rèn)識(shí)了很多PHP領(lǐng)域的專家級(jí)開發(fā)者,它們對(duì)PHP也有很多看法。除了上文提到的委員會(huì)問題以及標(biāo)準(zhǔn)混亂問題之外。由于PHP的使用范圍非常廣,向后的不兼容對(duì)代碼造成了很大的破壞。還要提到的一點(diǎn)是PHP缺乏很多現(xiàn)代語(yǔ)言的特性?,F(xiàn)在再來說說Python:
Python語(yǔ)言的創(chuàng)建方法幾乎與PHP的完全相反。首先,Python是由Benevolent Dictator和Guido van Rossum領(lǐng)導(dǎo)的,語(yǔ)言的開發(fā)由單一的人員主導(dǎo),因此它的開發(fā)、管理以及長(zhǎng)期運(yùn)營(yíng)會(huì)保持很好的連續(xù)性。
Guido和Python的核心開發(fā)者通過PEP創(chuàng)建標(biāo)準(zhǔn),而且通過公共接口展示標(biāo)準(zhǔn)是如何創(chuàng)建的。而且,Guido如果想到的語(yǔ)言特性不夠好。也不會(huì)出現(xiàn)在語(yǔ)言層中(如沒有++運(yùn)算符,而且比較符中沒有分配)。延續(xù)性的特點(diǎn)也延伸到了整個(gè)Python社區(qū),所以你很難發(fā)現(xiàn)不同項(xiàng)目中的Python截然不同。
我最喜歡的Python的一個(gè)特點(diǎn)就是它的清晰。當(dāng)打開Python中的一個(gè)文件的時(shí)候,我會(huì)清楚地知道里面大概有什么樣子的代碼,聯(lián)想到很多次我被PHP的這一點(diǎn)搞得焦頭爛額,我覺得這個(gè)特性非常有用。#t#
總之,Python的系統(tǒng)級(jí)特性非常不錯(cuò)。Python另外一個(gè)很棒的特性是直白性。需要namespace(命名空間)?文件的名字就是命名空間;需要模塊?只需要用一個(gè)__init__.py文件代替;需要重命名功能?只需要new_func = old_func。
創(chuàng)建一個(gè)Thread 的實(shí)例,構(gòu)造方法中傳入一個(gè)函數(shù)t=threading.Thread(target=_func_name,args=(參數(shù)元組)創(chuàng)建一個(gè)Thread 的實(shí)例。構(gòu)造方法中傳入一個(gè)可調(diào)用的類對(duì)象定義一個(gè)類class ThreadFunc,類中必須重寫call__函數(shù)供線程調(diào)用t=threading.Thread(target=ThreadFunc實(shí)例)
從Thread派生出一個(gè)子類,創(chuàng)建子類的實(shí)例class MyThread(threading.Thread)重寫threading.Thread中的run函數(shù)供線程執(zhí)行。所有上述線程創(chuàng)建后,都采用線程實(shí)例的start()的方法啟動(dòng),join()方法加自旋鎖。關(guān)于自旋鎖,多個(gè)線程運(yùn)行時(shí),怎樣確保所有重要線程都已經(jīng)結(jié)束呢?在threading模塊中。
每個(gè)Python語(yǔ)言都有一個(gè)join函數(shù),其實(shí)就是一個(gè)等待此線程鎖釋放的無限循環(huán)(也稱為自旋鎖)。當(dāng)一個(gè)線程實(shí)例啟動(dòng)時(shí),顯式調(diào)用join()會(huì)使主線程被迫等待該線程的自旋鎖釋放。這種情況在順序過程的任務(wù)流程序中比較常見。
學(xué)到這里,我想,不妨做一個(gè)通用的模塊,對(duì)任意過程實(shí)現(xiàn)線程同步處理。比如一個(gè)下載過程,只需要傳入U(xiǎn)RL就可以了,主線程不必等待下載完成才執(zhí)行其他任務(wù),對(duì)于這樣一個(gè)特殊的過程函數(shù),我們可以使用函數(shù)修飾功能。
本文題目:探尋Python語(yǔ)言?shī)W秘所在
網(wǎng)頁(yè)URL:http://m.5511xx.com/article/cdohjdo.html


咨詢
建站咨詢
