德國(guó)西門(mén)子售后代理商 西門(mén)子總代理 西門(mén)子授權(quán)代理 2022已更新
西門(mén)子長(zhǎng)期經(jīng)營(yíng):DP總線電纜接頭、PLC系列:S7-200、S7-200CN、S7-200Smart、S7-300、S7-400、S7-1200、S7-1500、觸摸屏、變頻器、伺服電機(jī)、S I T O P電源、電線電纜、數(shù)控系統(tǒng)、人機(jī)界面、軟啟動(dòng)器、西門(mén)子軟件等等、誠(chéng)信經(jīng)營(yíng)、質(zhì)量為本、西門(mén)子工控系列產(chǎn)品長(zhǎng)期合作伙伴!
Python 提供了強(qiáng)大的模塊支持,主要體現(xiàn)在,不僅 Python 標(biāo)準(zhǔn)庫(kù)中包含了大量的模塊(稱為標(biāo)準(zhǔn)模塊),還有大量的第三方模塊,自己也可以開(kāi)發(fā)自定義模塊。通過(guò)這些強(qiáng)大的模塊可以極大地提高的開(kāi)發(fā)效率。
那么,模塊到底指的是什么呢?模塊,英文為 Modules,至于模塊到底是什么,可以用一句話總結(jié):模塊就是 Python 程序。換句話說(shuō),任何 Python 程序都可以作為模塊,包括在前面章節(jié)中寫(xiě)的所有 Python 程序,都可以作為模塊。
模塊可以比作一盒積木,通過(guò)它可以拼出多種主題的玩具,這與前面介紹的函數(shù)不同,一個(gè)函數(shù)僅相當(dāng)于一塊積木,而一個(gè)模塊(.py 文件)中可以包含多個(gè)函數(shù),也就是很多積木。模塊和函數(shù)的關(guān)系如圖 1 所示。
圖 1 模塊和函數(shù)的關(guān)系
經(jīng)過(guò)前面的學(xué)習(xí),讀者已經(jīng)能夠?qū)?Python 代碼寫(xiě)到一個(gè)文件中,但隨著程序功能的復(fù)雜,程序體積會(huì)不斷變大,為了便于維護(hù),通常會(huì)將其分為多個(gè)文件(模塊),這樣不僅可以提高代碼的可維護(hù)性,還可以提高代碼的可重用性。
代碼的可重用性體現(xiàn)在,當(dāng)編寫(xiě)好一個(gè)模塊后,只要編程過(guò)程中需要用到該模塊中的某個(gè)功能(由變量、函數(shù)、類實(shí)現(xiàn)),無(wú)需做重復(fù)性的編寫(xiě)工作,直接在程序中導(dǎo)入該模塊即可使用該功能。
前面講了封裝,并且還介紹了很多具有封裝特性的結(jié)構(gòu),比如說(shuō):
諸多容器,例如列表、元組、字符串、字典等,它們都是對(duì)數(shù)據(jù)的封裝;
函數(shù)是對(duì) Python 代碼的封裝;
類是對(duì)方法和屬性的封裝,也可以說(shuō)是對(duì)函數(shù)和數(shù)據(jù)的封裝。
本節(jié)所介紹的模塊,可以理解為是對(duì)代碼更高級(jí)的封裝,即把能夠?qū)崿F(xiàn)某一特定功能的代碼編寫(xiě)在同一個(gè) .py 文件中,并將其作為一個(gè)獨(dú)立的模塊,這樣既可以方便其它程序或腳本導(dǎo)入并使用,同時(shí)還能有效避免函數(shù)名和變量名發(fā)生沖突。
舉個(gè)簡(jiǎn)單的例子,在某一目錄下(桌面也可以)創(chuàng)建一個(gè)名為 hello.py 文件,其包含的代碼如下:
、
在同一目錄下,再創(chuàng)建一個(gè) say.py 文件,其包含的代碼如下:
#通過(guò) import 關(guān)鍵字,將 hello.py 模塊引入此文件
運(yùn)行 say.py 文件,其輸出結(jié)果為:
讀者可能注意到,say.py 文件中使用了原本在 hello.py 文件中才有的 say() 函數(shù),相對(duì)于 day.py 來(lái)說(shuō),hello.py 就是一個(gè)自定義的模塊(有關(guān)自定義模塊,后續(xù)章節(jié)會(huì)做詳細(xì)講解),我們只需要將 hellp.py 模塊導(dǎo)入到 say.py 文件中,就可以直接在 say.py 文件中使用模塊中的資源。
與此同時(shí),當(dāng)調(diào)用模塊中的 say() 函數(shù)時(shí),使用的語(yǔ)法格式為“模塊名.函數(shù)”,這是因?yàn)?,相?duì)于 say.py 文件,hello.py 文件中的代碼自成一個(gè)命名空間,因此在調(diào)用其他模塊中的函數(shù)時(shí),需要明確指明函數(shù)的出處,否則 Python 解釋器將會(huì)報(bào)錯(cuò)。