成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

進(jìn)行對(duì)Python模塊說(shuō)明研究

開(kāi)發(fā) 后端
Python帶有一個(gè)標(biāo)準(zhǔn)模塊庫(kù),在另一個(gè)文檔中進(jìn)行了描述,一些Python模塊直接編入了解釋程序中,這些模塊不是語(yǔ)言的核心,

為了提高調(diào)用許多標(biāo)準(zhǔn)Python模塊的小程序的啟動(dòng)時(shí)間,一個(gè)重要的措施是,如果在找到“spam.py ”的目錄中存在一個(gè)名為“spam.pyc”的文件,就認(rèn)為此文件包含了模塊spam的一個(gè)所謂“ 字節(jié)編譯”版本。

用于生成“spam.pyc”的“spam.py”的修改時(shí)間被記入了“spam.pyc”中,如果記錄的修改時(shí)間與現(xiàn)在文件的時(shí)間不相符的話就忽略編譯文件。一般不需要自己生成“spam.pyc”這樣的編譯文件。每當(dāng)“spam.py”成功編譯后解釋程序就嘗試寫(xiě)編譯版本“spam.pyc”,如果不可寫(xiě)也不會(huì)出錯(cuò);#t#

如果因?yàn)槟撤N原因此文件沒(méi)有寫(xiě)完則生成的“spam.pyc”被識(shí)別為不完整的而被忽略。編譯文件“spam.pyc”的格式是不依賴于平臺(tái)的,所以不同結(jié)構(gòu)的機(jī)器可以共享Python模塊目錄。

下面是對(duì)專家的一些竅門(mén):

如果Python解釋程序是以-O標(biāo)志啟動(dòng)的,將生成優(yōu)化的編譯代碼,保存在“.pyo”文件中。目前優(yōu)化不是很多,現(xiàn)在只是去掉assert語(yǔ)句和SET_LINENO指令。使用了-O標(biāo)志時(shí),所有字節(jié)碼都是優(yōu)化的,“.pyc”文件被忽略,“.py”文件被編譯為優(yōu)化的字節(jié)碼。 給Python解釋程序兩個(gè)優(yōu)化標(biāo)志(-OO)產(chǎn)生的優(yōu)化代碼有時(shí)會(huì)導(dǎo)致程序運(yùn)行不正常。

目前雙重優(yōu)化只從字節(jié)碼中刪除了__doc__字符串,使得“.pyo”文件較小。有些程序可能是依賴于文檔字符串的,所以只有在確知不會(huì)有問(wèn)題時(shí)才可以使用這樣的優(yōu)化。 從“.pyc”或“.pyo”讀入的程序并不能比從“.py”讀入的運(yùn)行更快,它們只是調(diào)入速度更快一些。 如果一個(gè)程序是用在命令行指定腳本文件名的方式運(yùn)行的。

腳本的字節(jié)碼不會(huì)寫(xiě)入“.pyc ”或“.pyo”文件。所以如果把程序的主要代碼都移入一個(gè)模塊,腳本中只剩下導(dǎo)入該模塊的引導(dǎo)程序則可以略微縮短腳本的啟動(dòng)時(shí)間。 可以有叫做“spam.pyc”(當(dāng)用了-O標(biāo)志時(shí)為“spam.pyo”)的文件而沒(méi)有對(duì)應(yīng)的源文件“spam.py”。這可以用來(lái)分發(fā)一個(gè)比較難反編譯的Python代碼庫(kù)。

模塊compileall可以把一個(gè)目錄中所有模塊編譯為“.pyc”文件(指定了-O選項(xiàng)時(shí)編譯為“.pyo”文件)。Python帶有一個(gè)標(biāo)準(zhǔn)模塊庫(kù),在另一個(gè)文檔《Python庫(kù)參考》中進(jìn)行了描述。

一些模塊直接編入了解釋程序中,這些模塊不是語(yǔ)言的核心,為了運(yùn)行效率或者為了提供對(duì)于系統(tǒng)調(diào)用這樣的系統(tǒng)底層功能而編入了解釋程序中。提供那些模塊是編譯時(shí)的選擇。

Python中可以用“包”來(lái)組織Python模塊名字空間,名字引用時(shí)可以用“帶點(diǎn)的模塊名。例如,模塊名A.B代表包“A”內(nèi)名為“B”的子模塊。正如使用模塊可以使不同模塊的作者不用顧慮彼此的全局變量名會(huì)沖突,使用帶點(diǎn)的模塊名可以使多模塊包如NumPy和PIL的作者不需要擔(dān)心彼此的模塊名會(huì)沖突。

例如,Python模塊只在提供amoeba底層指令的系統(tǒng)中才能提供。有一個(gè)模塊值得特別重視:sys模塊,每一個(gè)Python解釋程序中都編譯入了這個(gè)模塊。變量sys.ps1和sys.ps2定義了交互運(yùn)行時(shí)的初始提示和續(xù)行提示。

這兩個(gè)變量只在解釋程序以交互方式運(yùn)行時(shí)才有定義。 變量sys.path是一個(gè)字符串列表,由它確定解釋程序的模塊搜索路徑。它被初始化為環(huán)境變量PYTHONPATH所指定的缺省路徑,環(huán)境變量沒(méi)有定義時(shí)初始化為安裝時(shí)的缺省路徑。可以用標(biāo)準(zhǔn)的列表操作修改這個(gè)搜索路徑,例如:

  1. >>> import fibo, sys  
  2. >>> dir(fibo)  
  3. ['__name__', 'fib', 'fib2']  
  4. >>> dir(sys)  
  5. ['__name__', 'argv', 'builtin_module_names', 'copyright', 'exit',  
  6. 'maxint', 'modules', 'path', 'ps1', 'ps2', 'setprofile', 'settrace',  
  7. 'stderr', 'stdin', 'stdout', 'version']  
責(zé)任編輯:chenqingxiang 來(lái)源: 博客園
相關(guān)推薦

2010-03-01 14:02:26

Python批處理語(yǔ)言

2010-03-16 14:35:53

思科交換機(jī)模塊

2010-02-26 09:42:52

Python線程池

2010-02-02 15:48:49

Python數(shù)據(jù)庫(kù)

2010-02-22 14:54:47

Python應(yīng)用程序

2009-12-10 15:44:18

Build Web S

2009-12-04 09:32:00

Web Setup P

2009-12-08 18:08:43

WCF服務(wù)

2010-03-10 18:29:57

2010-01-05 13:29:50

JSON對(duì)象

2010-01-05 17:06:46

JSON 數(shù)據(jù)

2009-12-09 16:52:51

VS 2003插件

2010-02-02 13:28:46

Python變量

2010-03-16 15:12:44

光纖交換機(jī)

2009-12-28 15:54:20

ADO.NET技巧

2010-01-05 10:47:05

command對(duì)象

2010-01-05 15:55:33

JQuery源碼

2010-01-11 11:16:37

C++編程

2010-02-02 17:08:26

Python靜態(tài)編譯器

2010-02-02 17:08:26

Python靜態(tài)編譯器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: www.日韩 | 国产片淫级awww | 一区二区三区国产精品 | 久久99精品久久久久久 | 韩国久久精品 | 久久久精品网站 | 天天天操 | 精品不卡 | 中文字幕在线一区 | 91色视频在线观看 | 久久无毛| 亚洲区视频 | 6080yy精品一区二区三区 | 狠狠的操 | 国产精品久久久爽爽爽麻豆色哟哟 | 国内精品久久久久 | 欧美日韩亚洲国产 | 一级高清免费毛片 | 日韩欧美国产精品一区二区三区 | 日韩欧美精品一区 | 中文字幕在线一区 | 久久中文字幕一区 | 精品国产伦一区二区三区观看方式 | 色一情一乱一伦一区二区三区 | 精品一区二区久久久久久久网精 | 国产精品久久久久久久久久了 | 国产清纯白嫩初高生视频在线观看 | 日韩欧美大片在线观看 | 免费日韩av网站 | 亚洲精品大片 | k8久久久一区二区三区 | 久久精品91久久久久久再现 | 99色综合 | 天天操夜夜操 | 国产精品v | 亚洲视频中文 | 日本精品视频在线观看 | 欧美日韩在线观看视频 | 亚洲日韩中文字幕 | 殴美成人在线视频 | 国产福利网站 |