




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第Python自定義模塊的創(chuàng)建與使用目錄一、前言二、模塊的概述三、自定義模塊1.創(chuàng)建模塊2.使用import語(yǔ)句導(dǎo)入模塊3.使用fromimport語(yǔ)句導(dǎo)入模塊附:python打包用戶自定義模塊總結(jié)
一、前言
在Python提供了強(qiáng)大的模塊支持,主要體現(xiàn)為不僅在Python標(biāo)準(zhǔn)庫(kù)中包含了大量的模塊(稱(chēng)為標(biāo)準(zhǔn)模塊),而且還有很多第三方模塊,另外開(kāi)發(fā)者自己也可以開(kāi)發(fā)自定義模塊。通過(guò)這些強(qiáng)大的模塊支持,將極大地提高我們的開(kāi)發(fā)效率。
二、模塊的概述
模塊的英文是Module,可以認(rèn)為是一盒(箱)主題積木,通過(guò)它可以拼出某一主題的東西。這與函數(shù)不同,一個(gè)函數(shù)相當(dāng)于一塊積木,而一個(gè)模塊包括很多函數(shù),也就是很多積木,所以也可以說(shuō)模塊相當(dāng)于一盒積木。
在Python中,一個(gè)擴(kuò)展名為.py的文件就稱(chēng)之為一個(gè)模塊。通常情況下,我們把能夠?qū)崿F(xiàn)某一特定功能的代碼放置在一個(gè)文件中作為一個(gè)模塊,從而方便其他程序和腳本導(dǎo)入并使用。另外,使用模塊也可以避免函數(shù)名和變量名沖突。
我們知道對(duì)于Python代碼可以寫(xiě)在一個(gè)文件中,但是隨著程序不斷變大,為了維護(hù),需要將其分為多個(gè)文件,這樣可以提高代碼的可維護(hù)性,使用模塊還可以提高代碼的可重用性。即編寫(xiě)好一個(gè)模塊后,只要是實(shí)現(xiàn)該功能的程序,都可以導(dǎo)入這個(gè)模塊來(lái)實(shí)現(xiàn)。
三、自定義模塊
在Python中,自定義模塊有兩個(gè)作用,一個(gè)是規(guī)范代碼,讓代碼更容易閱讀,另外一個(gè)是方便其他程序使用已編好的代碼,提高開(kāi)發(fā)效率。要實(shí)現(xiàn)自定義模塊主要分為兩部分,一部分是創(chuàng)建模塊,另一部分是導(dǎo)入模塊。
1.創(chuàng)建模塊
創(chuàng)建模塊可以將模塊中相關(guān)的代碼(變量定義和函數(shù)定義等)編寫(xiě)在一個(gè)單獨(dú)的文件中,并且將該文件命名為模塊名+.py的形式,也就是說(shuō),創(chuàng)建模塊,實(shí)際就是創(chuàng)建一個(gè).py文件。
注意:
創(chuàng)建模塊時(shí),設(shè)置的模塊名盡量不要與Python自帶的標(biāo)準(zhǔn)模塊名稱(chēng)相同模塊文件的擴(kuò)展名必須是.py
2.使用import語(yǔ)句導(dǎo)入模塊
創(chuàng)建模塊后,就可以在其他程序中使用該模塊了。要使用該模塊需要先以模塊的形式加載模塊中的代碼,這可以使用import語(yǔ)句實(shí)現(xiàn)。import語(yǔ)句的基本語(yǔ)法格式如下:
importmodulename[asalias]
參數(shù)說(shuō)明:
modulename:要導(dǎo)入模塊的名稱(chēng)[asalias]:為模塊起的別名
例如,導(dǎo)入一個(gè)名稱(chēng)為test的模塊,并執(zhí)行該模塊中的getInfo()函數(shù),代碼如下:
importtest#導(dǎo)入test模塊
test.getInfo()#執(zhí)行模塊中的getInfo()函數(shù)
可以使用關(guān)鍵字as將導(dǎo)入模塊起個(gè)別名,代碼如下:
importtestasm#導(dǎo)入test模塊,并將test別名為m
m.getInfo()#執(zhí)行模塊中的getInfo()函數(shù)
使用import一次可以導(dǎo)入多個(gè)模塊,在導(dǎo)入多個(gè)模塊時(shí),模塊與模塊之間用逗號(hào),隔開(kāi)。例如,同時(shí)導(dǎo)入test.py、data.py、tips.py3個(gè)模塊文件,代碼如下:
importtest,data,tips
雖然一次可以導(dǎo)入多個(gè)模塊,但不建議大家使用這種方法。
3.使用fromimport語(yǔ)句導(dǎo)入模塊
在使用import語(yǔ)句導(dǎo)入模塊時(shí),每一次執(zhí)行import語(yǔ)句都會(huì)創(chuàng)建一個(gè)新的命名空間(namespace),并且在命名空間中執(zhí)行與.py文件相關(guān)的所有語(yǔ)句。在執(zhí)行時(shí),需要在具體的變量、函數(shù)和類(lèi)名前加上模塊名.前綴。如果不想在每次導(dǎo)入模塊時(shí)都創(chuàng)建一個(gè)新的命名空間,而是將具體的定義導(dǎo)入當(dāng)前的命名空間中,這時(shí)可以使用fromimport語(yǔ)句。使用fromimport語(yǔ)句導(dǎo)入模塊后,不需要再添加前綴,直接通過(guò)具體的變量、函數(shù)和類(lèi)名等訪問(wèn)即可。
fromimport語(yǔ)句的語(yǔ)法格式如下:
frommodelnameimportmember
參數(shù)說(shuō)明:
modelname:模塊名稱(chēng),區(qū)分字母大小寫(xiě),需要和定義模塊時(shí)設(shè)置的模塊名稱(chēng)的大小寫(xiě)保持一致。member:用于指定要導(dǎo)入的變量、函數(shù)或者類(lèi)等。可以同時(shí)導(dǎo)入多個(gè)定義,各個(gè)定義之間用逗號(hào),隔開(kāi)。如果想導(dǎo)入全部定義,也可以使用通配符星號(hào)*代替。
例如,通過(guò)下面3條語(yǔ)句都可以從模塊導(dǎo)入指定的定義:
fromtestimportgetInfo#導(dǎo)入test模塊的getInfo()函數(shù)
fromtestimportgetInfo,showInfo#導(dǎo)入test模塊的getInfo()和showInfo()函數(shù)
fromtestimport*#導(dǎo)入test模塊的全部定義(包括變量和函數(shù))
注意:
在使用fromimport語(yǔ)句導(dǎo)入模塊中定義時(shí),需要保證所有導(dǎo)入的內(nèi)容在當(dāng)前的命名空間中是唯一的,否則將出現(xiàn)沖突,后導(dǎo)入的同名變量、函數(shù)或者類(lèi)會(huì)覆蓋先導(dǎo)入的。這時(shí)就需要使用import語(yǔ)句進(jìn)行導(dǎo)入了。
附:python打包用戶自定義模塊
假設(shè)需要打包的模塊文件名為my.py,打包模塊需要新建的一個(gè)腳本setip.py,然后在腳本下輸入如下的內(nèi)容:
from
disutils.core
import
setup
setup{name
=
'my',version
=
'1.0',py_modules
=
['my']}
以管理員身份運(yùn)行cmd,進(jìn)入my.py的目錄,執(zhí)行下面的命令即可打包:
python
setup.py
sdist
運(yùn)行后在該目錄下方出現(xiàn)一個(gè)文件夾dist,進(jìn)入這個(gè)文件夾,會(huì)出現(xiàn)一個(gè)my-1.0.zip文件。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CRIA 29008-2023載重子午線輪胎胎圈耐久性能室內(nèi)試驗(yàn)方法
- T/CRIA 16011-2022煤礦用輸送帶合成纖維整體帶芯
- T/CNIDA 011-2023重水堆端部組件本體用11Cr12MnNiSi馬氏體不銹鋼鍛件
- T/CIET 29-2023裝配式波紋鋼結(jié)構(gòu)立式消力池應(yīng)用技術(shù)規(guī)程
- T/CHIA 24.1-2022兒童營(yíng)養(yǎng)與健康調(diào)查基本數(shù)據(jù)集第1部分:0~23月齡
- T/CGCC 78-2023區(qū)域商業(yè)價(jià)值評(píng)價(jià)指南
- T/CGCC 10-2018交通樞紐型商業(yè)經(jīng)營(yíng)管理要求
- T/CFDCC 0607-2023健康整家定制評(píng)價(jià)通則
- T/CFDCC 0213-2021家居企業(yè)信用等級(jí)評(píng)價(jià)準(zhǔn)則
- T/CECS 10343-2023不銹鋼槽式預(yù)埋組件
- 制造部生產(chǎn)效率提升計(jì)劃
- 寵物丟失諒解協(xié)議書(shū)
- 幼兒園中班科學(xué)活動(dòng)公開(kāi)課《飛機(jī)本領(lǐng)大》課件
- 體育競(jìng)彩考試題及答案
- 中國(guó)日用器皿行業(yè)市場(chǎng)前景預(yù)測(cè)及投資價(jià)值評(píng)估分析報(bào)告
- 2025年天津市西青區(qū)九年級(jí)二模數(shù)學(xué)試題(含部分答案)
- 2022年新高考全國(guó)I卷數(shù)學(xué)真題
- 2025中考英語(yǔ)解題技巧專(zhuān)題10.閱讀表達(dá)解題技巧(學(xué)生版+解析)
- 青少年體重健康管理
- 23G409先張法預(yù)應(yīng)力混凝土管樁
- 2022年高考真題-政治(重慶卷) 含答案
評(píng)論
0/150
提交評(píng)論