軟件編程思想-12

上傳人:無*** 文檔編號:253322151 上傳時間:2024-12-11 格式:PPT 頁數(shù):26 大小:353.50KB
收藏 版權(quán)申訴 舉報 下載
軟件編程思想-12_第1頁
第1頁 / 共26頁
軟件編程思想-12_第2頁
第2頁 / 共26頁
軟件編程思想-12_第3頁
第3頁 / 共26頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《軟件編程思想-12》由會員分享,可在線閱讀,更多相關(guān)《軟件編程思想-12(26頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,第,12,章 模塊,模塊概述,模塊,和文件,命名,空間,導,入模塊,導,入模塊屬性,模塊,內(nèi)建函數(shù)包,模塊,的其他特性,什么,是模塊,當,代碼量變得相當大的時候,把,代碼分成,一些,有組織的代碼,段。這些,代碼片段相互間有一定的聯(lián)系,可能是一,個包含,數(shù)據(jù)成員和方法的類,也可能是一組相關(guān)但彼此獨立的操作函數(shù)。,這些,代碼段是共享的,,允許,調(diào)入,一個模塊,實現(xiàn),代碼重用,.,這個把其他模塊中屬性附加到你的模塊中的

2、操作叫做導入,(import),。那些自我包含并且有組織的,代碼,片斷就是模塊,(module),。,模塊,是按照邏輯來組織,Python,代碼的,方法;文件是,物理層上組織模塊的方法,。,模塊的文件名就是,模塊,的名字加上擴展名,.py,一個名稱空間就是一個從名稱到,對象的,關(guān)系映射集合,。,string,模塊中的,atoi(),函數(shù)就是,string.atoi(),。,通過句點屬性標識指定了各自的名稱空間,-,防止了名稱沖突的發(fā)生。,搜索路徑和,路徑搜索,路徑搜索,:,指查找某個文件的操作,搜索路徑,:,去,查找一組目錄。,模塊的導入需要一個,叫做,“,路徑搜索,”,的,過程。即在,文件系

3、統(tǒng),“,預定,義,區(qū)域,”,中查找文件。,import xxx,Traceback(innermost last):,File,line 1,in?,ImportError:No module named xxx,默認搜索,路徑,sys.path,/usr/local/lib/python2.x/,/usr/local/lib/python2.x/plat-sunos5,/usr/local/lib/python2.x/lib-tk,/usr/local/lib/python2.x/lib-dynload,/,usr/local/lib/Python2.x/site-packages,sys.

4、path.append(/home/wesc/py/lib),名稱,空間,名稱空間是名稱,(,標識符,),到對象的映射,。,向,名稱空間添加名稱的操作過程涉及到綁定標識符,到指定,對象的操作,(,以及給該對象的引用計數(shù)加,1,),局部,名稱空間,全局名稱空間和內(nèi)建名稱,空間,名稱查找,確定作用域,覆蓋,名稱查詢,.,訪問一個,屬性時,解釋器必須在三個名稱空間中的一個找到它。首先從局部名稱空間開始,如果沒有找到,解釋器,將繼續(xù)查找全局名稱空間,.,如果這也失敗了,它將在內(nèi)建名稱空間里查找,。,foo,Traceback(innermost last):File,line 1,in?,NameEr

5、ror:foo,遮蔽效應。,局部,名稱空間中找到的名字會隱藏,全局,或內(nèi)建名稱空間的對應對象。這就相當于,覆蓋,了那個全局變量。,遮蔽效應,def foo():,print ncalling foo().,bar=200,print in foo(),bar is,bar,bar=100,print in _main_,bar is,bar,foo,(),in,_main_,bar is 100,calling foo().,in foo(),bar is 200,無限制的名稱,空間,可以在任何需要放置數(shù)據(jù)的地方獲得一個名稱空間,。,def foo():,pass,foo._doc_=Oops

6、,forgot to add doc str above!,foo.version=0.2,導入,模塊,import,module1,import module2,import module1,module2,.moduleN,推薦,順序,:,Python,標準庫模塊,Python,第三方模塊,應用程序自定義模塊,多行導,入,從一個模塊導入許多屬性時,from,Tkinter import Tk,Frame,Button,Entry,Canvas,Text,LEFT,DISABLED,NORMAL,RIDGE,END,多行的,from-import,語句,from Tkinter import

7、 Tk,Frame,Button,Entry,Canvas,Text,from Tkinter import LEFT,DISABLED,NORMAL,RIDGE,END,擴展的,import,語句,(as,),:使用,自己想要的名字替換模塊的原始名稱,。,import longmodulename,short=longmodulename,del,longmodulename,from,cgi import FieldStorage,.,可以替換為,.,from,cgi import FieldStorage as form,模塊導入的,特性,載入時執(zhí)行,模塊:,加載模塊會導致這個模塊,被,

8、“,執(zhí)行,”,。也就是,被導入模塊的頂層代碼將直接被執(zhí)行,。包括,設定全局變量以及類和函數(shù)的聲明,。,導入,(import),和加載,(load,),:,一個模塊只被加載一次,無論它被導入多少次。這可以阻止多重導入時代碼被多次執(zhí)行。,導入到當前名稱空間的,名稱,from-import,把名字導入當前的名稱空間里去,不需要使用屬性,/,句點屬性,標識來訪問模塊的標識符。例如,模塊,module,中的,var,名字被,導,入,:,from module import,var,限制使用,from module import*,被導入到導入者作用域的,名字,導致,覆蓋一,個已經(jīng)存在的具有相同名字的對象

9、。而且對這些變量的改變只影響它的局部拷貝而不是所導入,模塊的,原始名稱空間,。,#,imptee.py#,#,foo=abc,def show():,print foo from imptee:,foo,#,impter.py#,#,from imptee import foo,show,show(),foo=123,print foo from impter:,foo,show(),foo from imptee:abc,foo from impter:123,foo from imptee:abc,#,#impter.py#,#,import imptee,imptee.show(),im

10、ptee.foo=123,print foo from impter:,imptee.foo,imptee.show,(),foo from imptee:abc,foo from impter:123,foo from imptee:123,從,ZIP,文件中導入,模塊:,如果搜索,路徑中存在,一個,包含,Python,模塊的,.zip,文件,導入時會把,ZIP,文件當作目錄,處理,在文件中搜索模塊,。,也可以為,.zip,文件加入特定的,(,子,),目錄,例如,/tmp/yolk.zip/lib,只會從,yolk,歸,檔的,lib/,子目錄下導入。,_import,_(),_import_

11、(module_name,globals,locals,fromlist,),module_name,變量是要導入模塊的名稱,globals,是包含當前全局符號表的名字的字典,locals,是包含局部符號表的名字的字典,fromlist,是一個使用,from-import,語句所,導入符號,的列表。,sys=_import_(sys),def foo():,aString,=bar,anInt,=42,print,foo()s globals:,globals().keys(),print,foo()s locals:,locals().keys(),foo()s globals:_doc_,

12、foo,_name_,_builtins_,foo()s locals:anInt,aString,包:,一,個有層次的文件目錄結(jié)構(gòu),它定義了一個由模塊和子包組成的,Python,應用程序,執(zhí)行環(huán)境,為平坦的名稱空間加入有層次的組織結(jié)構(gòu),允許程序員把有聯(lián)系的模塊組合到一起,允許分發(fā)者使用目錄結(jié)構(gòu)而不是一大堆混亂的文件,幫助解決有沖突的模塊名稱,包,目錄,結(jié)構(gòu),Phone/,_,init_.py,common_util.py,Mobile,/,_,init_.py,Analog.py,igital.py,import Phone.Mobile.Analog,Phone.Mobile.Analog

13、.dial(),絕對導,入,import,Phone.Mobile.Analog,相對導,入,from Phone.Mobile.Analog import dial,from.Analog import dial,mon_util import setup,from.Fax import G3.dial.,自動載入的模塊,sys.modules,變量包含一個由當前載入,(,完整且成功導入,),到解釋器的模塊組成的字典,模塊名作,為鍵,它們的位置作為值,。,import sys,sys.modules.keys(),阻止屬性導,入:,以給你不想導入的,屬性,名稱加上一個下劃線,(_),導入循環(huán),omh4cli.py,from cli4vof import cli4vof,def,cli_util():,pass,def,omh4cli():,cli4vof(),c,li4vof.py,import omh4cli,def cli4vof():,omh4cli.cli_util,(),def cli4vof():,import omh4cli,omh4cli.cli_util(),

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔

相關(guān)搜索

關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  sobing.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!