深度剖析Python腳本語(yǔ)言功能
對(duì)于許多開(kāi)發(fā)人員來(lái)說(shuō),Python腳本語(yǔ)言應(yīng)該都有所耳聞,然而對(duì)于Python腳本語(yǔ)言的評(píng)論也是各式各樣的,有其甚者說(shuō)Python腳本語(yǔ)言將在一定時(shí)間內(nèi)消失在開(kāi)發(fā)這個(gè)大家庭中。
在此我并不是要去評(píng)論別人的對(duì)于錯(cuò),我只是站在一個(gè)比較客觀的角度來(lái)談?wù)?FONT>Python這一計(jì)算機(jī)語(yǔ)言。Python是一種解釋性語(yǔ)言,而且屬于OpenSource的項(xiàng)目。但是,你可以將其用于商業(yè)用途。
并且可以將其放在商業(yè)的產(chǎn)品光盤(pán)中一同發(fā)售。當(dāng)然,人們也可以從www.Python.org或者OpenSource的網(wǎng)站上免費(fèi)獲得其安裝程序或者源代碼。Python最初是在蘋(píng)果計(jì)算機(jī)上被編譯成功的,但現(xiàn)在他已經(jīng)可以運(yùn)行于世界上主流的操作平臺(tái)之上了。他不只有Windows版本的。
同時(shí)還有Linux,Unix等很多平臺(tái)上都可以使用他,在RedHat9中,還將其作為開(kāi)發(fā)必須的一項(xiàng)語(yǔ)言被安裝。對(duì)于Python的代碼類(lèi)型,基本可分為3種,分別是字節(jié)代碼,二進(jìn)制代碼優(yōu)化代碼。
他們的后綴名分別是.py .pyc .pyo 這些代碼都可以直接運(yùn)行。無(wú)需做任何的編譯或者連接。而在使用這些類(lèi)型的代碼上,Python會(huì)更具不同的情況選擇不同的類(lèi)型。如下:
- [thread2.py]
- import thread
- import time
- input = None
- lock = thread.allocate_lock()
- def threadProc():
- while True:
- print 'sub thread id : ', thread.get_ident()
- print 'sub thread %d wait lock...' % thread.get_ident()
- lock.acquire()
- print 'sub thread %d get lock...' % thread.get_ident()
- print 'sub thread %d receive input : %s' % (thread.get_ident(), input)
- print 'sub thread %d release lock...' % thread.get_ident()
- lock.release()
- time.sleep(1)
- thread.start_new_thread(threadProc, ())
- print 'main thread id : ', thread.get_ident()
- while True:
- print 'main thread %d wait lock...' % thread.get_ident()
- lock.acquire()
- print 'main thread %d get lock...' % thread.get_ident()
- input = raw_input()
- print 'main thread %d release lock...' % thread.get_ident()
- lock.release()
- time.sleep(1)
在運(yùn)行時(shí),Python腳本語(yǔ)言會(huì)檢測(cè)在main.py的當(dāng)前目錄中有沒(méi)有MyPython.pyc文件,如果沒(méi)有那么導(dǎo)入MyPython.py并且同時(shí)生成MyPython.pyc為下次更快的導(dǎo)入做好準(zhǔn)備。這樣,可以減少不少初始化的時(shí)間。而且,這一切無(wú)需用戶(hù)介入,Python腳本語(yǔ)言會(huì)自動(dòng)完成。對(duì)于其語(yǔ)法,不的不承認(rèn),他的語(yǔ)法是眾多其他語(yǔ)言中相對(duì)簡(jiǎn)單的,他排除了許多繁瑣的思索。如下:
- #!/usr/bin/python
- a=2003
- print a
- a='Hello python'
- print a
- a=[2,0,0,3]
- print a[0]
- 以上的代碼可以被正常運(yùn)行,其結(jié)果如下:
- 2003
- Hello python
- 2
如果是C++至少需要聲明3組變量。而對(duì)于Python腳本語(yǔ)言一個(gè)變量就可以了。不但如此,Python的對(duì)代碼塊的管理也有他的獨(dú)特之處。下面是Python與C++對(duì)于同樣一個(gè)While循環(huán)的比較。