Python自定義包使用方法_第1頁
Python自定義包使用方法_第2頁
Python自定義包使用方法_第3頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Python Python 自定義包使用方法介紹python Module py 可以看成一個module.py 文件,在另一個文件中需要 python Module py 可以看成一個module.py 文件,在另一個文件中需要 import 時,將事先寫好的 .py 文件拷貝到當(dāng)前目錄,或者是在sys.path 中增加事先寫好的.py 文件所在的目錄,然后import。如果將相關(guān)的 py 文件放到一個目錄下然后在加上一個 init.py 文件,就構(gòu)成了一個包。在每一個包中,都有一個 init.py(這個文件定義了包的屬性和方法然后是一些模塊文件和子目錄假如子目錄中也init.py那么它就是

2、這個包的子(xml 的時候,實際上導(dǎo)入了它的init.py 文件。一個包是一個帶有特殊文件 init.py 的目錄init.py 文件定義了包的屬性和方法。其實python 在執(zhí)行 import 語句時,它執(zhí)行了如下操作:第 1 步,創(chuàng)建一個新的,空的 module 對象(它可能包含多個modul;2 module sys.module 中3 module 程序所在的位置,其原理3 module 的代碼(如果需要,首先必須編譯3 module 程序所在的位置,其原理為:11)當(dāng)前目錄2)2)PYTHONPATH中指定的路徑列表中依次搜索3)python 的安裝設(shè)置相關(guān)的默認路徑,在Unix 下

3、,通常為/user/local/lib/pythonPYTHONPATHPYTHONPATH中存在module module,則會覆蓋標(biāo)準(zhǔn)module果當(dāng)前目錄下存在xml.py,那么執(zhí)行importxml 時,導(dǎo)入的是當(dāng)前目錄下的 module,而不是系統(tǒng)標(biāo)準(zhǔn)的xml。簡單目錄結(jié)構(gòu)下模塊調(diào)用方法 如test fun 中的sum 1)在同一目錄下。直接引用名字即可-maindir fun.py test.py調(diào)用方法:importfunfun.sum() 2)-maindir-subdir fun.py sum.py調(diào)用方法在subdir 中創(chuàng)建文init將subdir 看成一個包對待)2)在

4、test.py 中importsubdir.fun subdir.fun.sum()2subdir 目錄添加到搜索路徑,在test #加載到fun 所在的目錄importsyssys.path.append(subdir)#也可通過添加環(huán)境變量的方法,如exportPYTHONPAHT=$PYTHONPATH:/*/maindir/subdir#importfunfun.sum()搜索路徑是fun.py 所在的目錄,可將其目錄添init的方式搜索路徑是fun.py 所在的目錄,可將其目錄添init的方式import 目錄名.fun 2 1復(fù)雜目錄架構(gòu)下模塊調(diào)用方法 采用sys.path.app

5、end加載到文件所在目錄的方式對于少數(shù)文件還可,如果目錄層次復(fù)雜、數(shù)目較多時,就會變得吃力。此時就要過環(huán)境變量PYTHONPATH和init.py同步使用的方式如下多級目錄:-maindir-dir1-subdir1 fun.py-dir2-subdir2 test.py調(diào)用方法:exportPYTHONPAHT=$PYTHONPATH:/system_enc/python/maindir此后,加載模塊時,可以此開始(os.sys.path 查看)2)在需要被調(diào)用的模塊的所在層級目錄中均增加init.py 文exportPYTHONPAHT=$PYTHONPATH:/system_enc/py

6、thon/maindir此后,加載模塊時,可以此開始(os.sys.path 查看)2)在需要被調(diào)用的模塊的所在層級目錄中均增加init.py 文錄看做一個包進行處理,查找其下的文件模塊。如上,如上,test.py fun.pyfun.py subdir1及上級目錄dir1都增init.py文件,到主目錄maindir為止。-maindir-dir1 -maindir-dir1 init.py-subdir1-subdir1 init.pyfun.py init.pyfun.py-dir2-subdir2test.py注:上述中1)和缺一不可init被動的模塊中需要增加,主調(diào)函數(shù)所在目錄中不需

7、要添加。 inity件內(nèi)容一個包是一個帶有特殊文一個包是一個帶有特殊文init.py的目錄。init.py文件文件,但是必須存在init.py可以為空,只要它存在,就表明目錄應(yīng)被作為一個package處理。當(dāng)然init.py中也可以設(shè)相應(yīng)的內(nèi)容,下文詳細介紹。1.1.定義一個函數(shù)在在init.py 中定義一個函數(shù),可直接通過目錄函數(shù)名來調(diào)用。33dir1demo函數(shù),test.py中,可通過importdir1dir1.demo()來進行調(diào)用-maindir-dir1-maindir-dir1 init.py#defdemo():-subdir1 init.pyfun.py-dir2-subd

8、ir2test.py2.導(dǎo)入其他包或模塊-subdir1 init.pyfun.py-dir2-subdir2test.py2.導(dǎo)入其他包或模塊當(dāng)我們導(dǎo)入這個包的時候init.py文件自動運行,在其import寫在一個文件里了,也可以減少代碼量。不需要一個個去導(dǎo)入module 了。 init.py 中還有一個重要的變量,叫做all。我們有時會使 出一招“全部導(dǎo)入,也就是這樣fromPackageNameimport*這時這時import就會把注冊在init.py文件all列表中的子模塊和子包導(dǎo)入到當(dāng)前作用域中來。比如:-maindir-dir1 init-maindir-dir1 init.py#all=test1,subdir1test1.py-subdir1 init.py#all=fun或importfunfun.py-dir2-subdir2test2.py此時在test1.pyformsubdir1import*#加載了dir1 下fun 模塊fun.sum()#不需要加subdir1 層次在test2.pyfun.py-dir2-subdir2test2.py此時在test1.pyformsubdir1import*#加載了dir1 下fun 模塊fun.sum()#不需要加subdir1 層次在test2.pyformdir1import*#加載了dir

溫馨提示

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

最新文檔

評論

0/150

提交評論