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