為了提高模塊加載的速度,每個(gè)模塊都會(huì )在__pycache__文件夾中放置該模塊的預編譯模塊,命名為module.version.pyc,version是模塊的預編譯版本編碼,一般都包含Python的版本號。例如在CPython 發(fā)行版3.4中,fibo.py文件的預編譯文件就是:__pycache__/fibo.cpython-34.pyc。這種命名規則可以保證不同版本的模塊和不同版本的python編譯器的預編譯模塊可以共存。以下是小編為你整理的如何學(xué)python語(yǔ)言 ?
腳本在運行之前會(huì )首先檢查python文件的*編輯日期和預編譯模塊的編譯時(shí)間,從而決定是否需要重新編譯。預編譯模塊也是跨平臺的,所以不同的模塊是可以在不同的系統和不同的架構之間共享的。 ?
Python在兩種情況下不檢查緩存。*種,從命令行中直接加載的模塊總是會(huì )重新編譯并且結果不保存。第二種,如果沒(méi)有源模塊,則不會(huì )檢查緩存。為了支持無(wú)源代碼的部署方式,應該將預編譯模塊放在源代碼文件夾中而不是__pycache__中,并且不要包含源代碼模塊。
你可以使用-O和-OO參數來(lái)降低預編譯模塊的大小。-O開(kāi)關(guān)會(huì )去除assert語(yǔ)句,-OO開(kāi)關(guān)會(huì )去除assert語(yǔ)句和__doc__字符串。因為有些模塊要依賴(lài)這些語(yǔ)句,因此只有當你確認模塊的內容時(shí)才去使用這些開(kāi)關(guān)。優(yōu)化模塊的后綴名是.pyo。 ?
.pyo和.pyc文件的執行速度不會(huì )比.py文件快,快的地方在于模塊加載的速度。compileall模塊可以用來(lái)把某個(gè)文件夾的中的所有文件都編譯成為.pyc或者.pyo文件。 ?
lambdalambda通常是匿名函數的代名詞,我們用到lambda的時(shí)候就是創(chuàng )建一個(gè)匿名函數:舉個(gè)簡(jiǎn)單的例子:x代表了輸入,x**2代表計算方法,也代表返回內容,也就是說(shuō)這個(gè)函數輸入一個(gè)數,返回這個(gè)數的平方。但是因為這個(gè)函數沒(méi)有函數名,所以無(wú)法在其他地方調用 ?
除非我們將這個(gè)函數起一個(gè)名字:但通常我們不會(huì )這么做,匿名函數只是作為匿名使用。 ?
filter函數用法是:filter(fuction,list):將list中每一個(gè)元素帶入到function中,計算返回值,將返回值為T(mén)rue的list中的元素形成一個(gè)新的list,當然也可以是tuple。 ?
對于上面這個(gè)函數,我們可以用lambda來(lái)簡(jiǎn)化:它的意思是,如果alist中的值的平方小于5,就返回這個(gè)值,形成一個(gè)新的list ?
關(guān)于python
Python(英國發(fā)音:/?pa?θ?n/ 美國發(fā)音:/?pa?θɑ?n/), 是一種面向對象的解釋型計算機程序設計語(yǔ)言,由荷蘭人Guido van Rossum于1989年發(fā)明,*個(gè)公開(kāi)發(fā)行版發(fā)行于1991年。Python是純粹的自由軟件,源代碼和解釋器CPython遵循GPL(GNU General Public License)協(xié)議[1] 。Python語(yǔ)法簡(jiǎn)潔清晰,特色之一是強制用空白符(w作為語(yǔ)句縮進(jìn)。 ?
首先從Python官網(wǎng)(https://www.python.org/downloads/)下載Python安裝程序,本文以Python 3.5.2為例:
?
web-based installer 需要通過(guò)聯(lián)網(wǎng)完成安裝2、executable installer 通過(guò)可執行文件(*.exe)方式安裝3、embeddable zip file 嵌入式版本,可以集成到其它應用中 ?
筆者開(kāi)發(fā)環(huán)境是Windows所以選擇紅框選中的版本,Mac用戶(hù)下載紅框標注的版本,下載完成后,找到相應的軟件包, ?
python安裝步驟
下載安裝:從python官網(wǎng)下載開(kāi)發(fā)和運行環(huán)境程序。本例下載python-3.3.3.amd64的安裝包,并安裝。 ?
開(kāi)發(fā)工具:window系統中,python有多種開(kāi)發(fā)工具,比如,一、直接在cmd命令窗口執行,但此種僅能單條語(yǔ)句執行,不能運行完整的程序。二、python自帶的集成開(kāi)發(fā)環(huán)境,可通過(guò)開(kāi)始——所有程序——python3.3——IDLE(Python GUI)啟動(dòng)。三、其他集成開(kāi)發(fā)環(huán)境,如PythonWin等,有編輯和調試能力,還實(shí)現了MFC類(lèi)庫存的包裝。 ?
本例中,使用python自帶的開(kāi)發(fā)環(huán)境。File—New File,新建py文檔,編寫(xiě)程序,保存。Run——Run module,可得到運行結果。 ?
封裝性:可以把屬性、方法結合在一起,不可以直接訪(fǎng)問(wèn)對象的屬性,僅能通過(guò)接口與對象發(fā)生聯(lián)系。以下把方法和屬性封裝成了一個(gè)類(lèi)。 ?
構造器:python有3種類(lèi)型的構造器,且一個(gè)類(lèi)中僅可以定義一個(gè)構造器,若多個(gè),則以*為準。1.若不聲明,則默認為一個(gè)沒(méi)有任何操作的特殊的__init__方法,__init__(self),此時(shí)可通過(guò)obj = my_class()聲明實(shí)例。 2.自聲明__init__構造器,會(huì )覆蓋默認的,且可以更新類(lèi)的數據屬性。3.構造器方法__new__(),用于不可變內置類(lèi)型派生,不能通過(guò)實(shí)例訪(fǎng)問(wèn)屬性,僅能通過(guò)類(lèi)訪(fǎng)問(wèn)。 ?
繼承性:python支持多繼承,且子類(lèi)繼承了父類(lèi)的方法和屬性。若子類(lèi)中有和父類(lèi)相同名稱(chēng)的方法,則子類(lèi)會(huì )覆蓋(Override)父類(lèi)方法。父類(lèi)方法依舊可以訪(fǎng)問(wèn)。 ?
數據結構:有豐富的數據結構,例如列表、字典、集合等。本例簡(jiǎn)單介紹字典的使用。字典是鍵值對的無(wú)序集合,是可變對象。鍵在字典中是*的且必須是不可變對象。值可以是可變對象或不可變對象。以下例子對python字典的定義、訪(fǎng)問(wèn)、更新等的操作。 ?
文件的讀寫(xiě):python系統提供open()函數建立文件對象,并打開(kāi)要讀寫(xiě)的文件??蓪ξ募M(jìn)行讀,寫(xiě),若不需要時(shí),需關(guān)閉文件,釋放系統資源。