模塊是壹個概念,它包含 1~N 個文件,如果文件是 Python 代碼文件(就是.py 結尾的文件),那每個文件中可以包含函數,類等內容。
在公司工作,很多項目都是協作開發來完成,壹個項目後面可能存在很多工程師,為了開發方便,每個人負責的功能函數或者類都盡量封裝在壹個 模塊 中,模塊英文請記住 module ,有的地方叫做 庫 ,也有的地方叫做 包(package) ,對於現階段的妳來說,當成壹樣的內容就好。
互聯網上存在大量的開源模塊,這些模塊最大的優勢就是免費,很多時候使用這些模塊能極大的提高編碼效率,這也是很多人喜歡 Python 的原因之壹。
模塊學習的過程,不能按照語法結構來學習,它是壹種抽象的知識,是壹種代碼的設計方式。例如將寫好的函授放到模塊中。
接下來就將上面的函數整合到壹個模塊中去,建立壹個新的文件 stir_fry.py 然後將兩個函數復制到新的文件中。
stir_fry.py 文件包含那兩個函數
好了,完成任務,壹個模塊創建完畢了,這個 stir_fry.py 文件就是壹個模塊。
妳現在腦中肯定出現黑人問號臉了,What?這就完了。是的,完了,壹個低配模塊完成。
下面就可以拿著這個模塊給別人使用去了。會寫模塊成為大佬之後,就可以給新入行的菜鳥指點江山,寫模塊了。
在另壹個文件中,可以通過 import 模塊名 導入壹個模塊,例如導入剛才創建的 stir_fry 模塊。
註意要新建壹個文件,文件名隨意但是不要與模塊同名。
如果想要使用模塊中的函數,只需要參考下述語法格式即可。
通過 stir_fry 調用模塊中的函數。
當通過 import stir_fry 導入模塊之後,該模塊內的所有函數都壹次性導入到新文件中了。
如果不想導入模塊的所有函數,而只導入某個函數,使用壹下語法可以解決該問題。
修改上壹節案例:
直接導入模塊中的函數,使用時不需要通過 模塊名. 的方式調用,直接書寫函數名即可。
導入模塊中多個函數
語法格式如下:
導入模塊所有函數
語法格式如下:
剛才通過模塊導入函數妳應該發現壹個潛在的問題,就是函數名稱太長怎麽辦,除了名稱太長,還存在壹種情況,模塊中的函數名稱與當前文件中函數的名稱,存在重名的風險。此時可以學習壹個新的內容,通過 as 給模塊導入進來的函數起個別名,然後在該文件都使用別名進行編碼。
語法格式如下:
上述內容應用到案例中如下述代碼:
as 別名也可直接作用於模塊,語法格式如下:
隨著程序設計變的越來越復雜,只把函數放到模塊中已經不能滿足要求了,需要將更高級的內容放到模塊中,也就是類。
首先在 dog_module.py 文件中定義壹個類。
此時的 dog_module 就是模塊的名稱,而在該模塊中只有壹個類 Dog ,也可以在該模塊中多創建幾個類,例如:
與導入模塊的函數部分知識壹樣,如果希望導入壹個模塊中的類,可以直接通過下述語法格式實現:
使用模塊中的類,語法格式如下:
具體代碼不在演示,自行完成吧。
導入模塊的類和導入模塊的的函數用法是壹致的。
新建壹個 demo.py 文件,在該文件導入 dog_module 模塊中的類。
從模塊中導入多個類
該方式與函數的導入也壹致,語法格式如下:
導入模塊中所有類
學到這裏,妳應該已經發現導入模塊中的函數與導入模塊中的類,從代碼編寫的角度幾乎看不出區別,對比著學習即可。
導入類的時候也可以應用別名,同樣使用 as 語法。
學習到這裏妳對模塊是什麽,模塊怎麽用已經有了壹個基本認知,接下來先不用自己寫壹個特別牛的模塊,我們先把壹些常見的模塊應用起來。
通過隨機數模塊可以獲取到壹個數字,它的使用場景非常廣,例如 遊戲 相關開發、驗證碼相關、抽獎相關,學習了隨機數之後可以完成壹些非常不錯的小案例。
randint 方法
導入隨機數模塊之後,可以通過 randint 方法隨機生成壹個整數,例如下述代碼:
反復運行代碼會得到壹個 1~10 之間的數字,由此可以 randint 方法中的參數含義。
choice 方法
通過 choice 方法可以配合列表實現壹些效果,choice 可以隨機返回列表中的壹個元素。
如果妳想知道 choice 方法的具體用法,還記得怎麽查詢嗎?
shuffle 方法
該方法可以將壹個列表的順序打亂。
簡單挑選了 random 模塊中的三個方法做為說明,對於模塊的學習,後面將為每個模塊單開壹篇文章書寫。
時間模塊是 Python 中非常重要的壹個內置模塊,很多場景都離不開它,內置模塊就是 Python 安裝好之後自帶的模塊。
time 方法
time 模塊主要用於操作時間,該方法中存在壹個 time 對象,使用 time 方法之後,可以獲取從 1970年1月1日 00:00:00 到現在的秒數,很多地方會稱作時間戳。
輸出內容:
sleep 方法
該方法可以讓程序暫停,該方法的參數是的單位是 秒 。
使用語法格式為:
asctime 與 localtime 方法
以上兩個方法都可以返回當前系統時間,只是展示的形式不同。
time 模塊涉及的方法先只涉及這麽多,後續滾雪球學習過程中在繼續補充。
Python 還內置了很多模塊,例如 sys 模塊、os 模塊、json 模塊、pickle 模塊、shelve 模塊、xml 模塊、re 模塊、logging 模塊等等內容,後續都將逐步學習到,有可能需要分開專題給大家講解。
Python 模塊,快速編碼的壹種途徑,很多時候第三方模塊可以幫妳解決大多數常見編碼場景,讓妳在編碼的道路上飛奔。