更新時(shí)間:2023-05-17 來源:黑馬程序員 瀏覽量:
隨著Python程序復(fù)雜度的提高,代碼量會(huì)同步增長(zhǎng),這時(shí)若還是在一個(gè)文件中編寫代碼,代碼的維護(hù)就會(huì)越來越困難。為了保證代碼的可維護(hù)性,開發(fā)人員通常將一些功能性代碼放在其他文件中,這種用于存放功能性代碼的文件就是模塊。
作為一種強(qiáng)大且便捷的編程語言,Python 自然支持以模塊的形式組織代碼。Python內(nèi)置了一些標(biāo)準(zhǔn)模塊,Python的使用者也貢獻(xiàn)了豐富且強(qiáng)大的第三方模塊;標(biāo)準(zhǔn)模塊可以直接導(dǎo)入并使用,第三方模塊則需先行安裝。本節(jié)先介紹如何安裝模塊,再介紹如何導(dǎo)入和使用模塊。
利用Python 內(nèi)置的pip工具(安裝Python 3.8時(shí)會(huì)自動(dòng)安裝該工具)可以非常方便地安裝Python第三方模塊,該工具可在命令行中使用,語法格式如下:
pip install 模塊名
例如安裝用于開發(fā)游戲的pygame模塊,具體命令如下:
Pip Instal1 pygame
需要注意的是,pip是在線工具,它需要聯(lián)網(wǎng)獲取模塊資源, 若網(wǎng)絡(luò)未連接或網(wǎng)絡(luò)不佳,pip將無法順利安裝第三方模塊。
使用模塊中定義的內(nèi)容之前需先將模塊導(dǎo)入到當(dāng)前程序。Python使用import關(guān)鍵字導(dǎo)入模塊,其語法格式如下:
import模塊1,模塊2,…例如在程序中導(dǎo)入pygame模塊,具體代碼如下:
inport pygame
模塊導(dǎo)入后,可通過點(diǎn)字符“.”調(diào)用模塊中的內(nèi)容,其語法格式如下:
模塊,函數(shù) 模塊,變量
例如使用import 語句導(dǎo)入pygame模塊后可調(diào)用其中的init()函數(shù),示例代碼如下:
inport init()
便用點(diǎn)字符可避免多個(gè)模塊中存在同名函數(shù)時(shí)代碼產(chǎn)生歧義,但若不存在同名函數(shù),可使用“from模塊名import”直接將模塊的指定內(nèi)容導(dǎo)入程序,并在程序中直接使用模塊中的內(nèi)容。例如將pygame模塊的imit()函數(shù)導(dǎo)入程序,并直接使用該函數(shù),具體代碼如下:
from pygane import init init()
使用from…import…語句也可將指定模塊的全部?jī)?nèi)容導(dǎo)入當(dāng)前程序,此時(shí)可使用“*”指代模塊中的全部?jī)?nèi)容。例如將pygame模塊的全部?jī)?nèi)容導(dǎo)人,具體代碼如下:
from pygame inport*
需要注意的是,雖然from…import*可以方便地導(dǎo)入一個(gè)模塊中的所有內(nèi)容,但考慮到代碼的可維護(hù)性,此種方式不應(yīng)被過多使用。
模塊(module)、包(package)和庫(lib)是Python 組織代碼的3種方式。模塊是最基礎(chǔ)的代碼組織方式,每個(gè)包含有組織的代碼片段的.py文件都是一個(gè)模塊,文件名就是模塊名。
包以類似目錄的結(jié)構(gòu)組織模塊文件或子包,簡(jiǎn)單來說,一個(gè)包含_init_.py文件的目錄就是一個(gè)包。包中必有_init_py文件,并可以有多個(gè)模塊或子包。庫是一個(gè)抽象概念,它是指具有相關(guān)功能的模塊的集合。