(一)Python模塊化編程簡介

1 引言

衆所周知,模塊化編程具有不少優勢,尤爲在複雜項目上體現更爲明顯。Python模塊化編程有助於開發者統籌兼顧和分工協做,並提高代碼靈活性和可維護性,是編程開發者不可或缺的一項重要工具。web

2 Python模塊

在平時Python編程中,咱們所保存的以.py爲後綴的代碼文件(如hello.py),稱爲源文件(source file)。開始學習Python編程時,咱們一般將項目全部代碼放在一個源文件中進行編譯實現,可是隨着深刻學習和項目變得複雜起來時,這種方法將沒法知足你快速找到你定義的函數(functions)或類(classes)的具體位置,這時模塊化編程思想就有了用武之地。數據庫

咱們能夠建立一個Python模塊(如module.py),其中module稱爲模塊的名稱。固然,Python模塊在本質上就是一個源文件(source file),一樣是以.py做爲後綴保存。Python模塊一般包含的是項目須要實現的某個或某幾個功能的源代碼(source code),當你的項目須要實現包含在此模塊中的功能時,運用import module則可導入此模塊到項目中。編程

3 Python包

Python包就是把多個Python模塊集合到一塊兒而造成的一個目錄(directory),以下圖所示。後端

上圖所示定義了一個名爲animals的Python包,包含了5個Python模塊:cat, cow, dog, horse, sheep。此外,還包含了一個名爲_init_.py的特殊文件,咱們一般稱此文件爲包初始化文件(package initialization file)。_init_.py文件做用以下:1)告知Python system此目錄中包含有一個Python包;2)初始化該Python包;3)使導入該Python包時更容易。模塊化

【注】:Python3.3版本之後,Python包中並不是必需要包含初始化文件(此類包稱之爲命名空間包(namespace package)),但習慣上仍然選擇包含初始化文件(此類包稱之爲常規包(regular package))。函數

調用Python包中模塊和前面相似,如import animals.cat。工具

建立Python包能夠更好地組織協調複雜項目,可以將有關聯的Python模塊進行集中,甚至可以在Python包中繼續定義Python包(稱爲嵌套包(nested packages))。學習

4 運用Python模塊和包來組織一個項目

Python模塊和包的應用不只僅能將你項目的所有代碼劃分到各個模塊和包中,並且它可以反映出項目的邏輯結構。例如,當你須要建立一個網頁應用用來存儲和報告考試成績,則能夠將這個項目劃分爲兩個主要部分:1)網頁接口,用來與用戶交互使用;2)後端,操做數據庫存儲信息的內部邏輯併產生報告結果。以下圖所示:優化

  對於網頁接口,可由如下四個模塊構成:spa

  • 提供用戶驗證部分,包括註冊、登陸、登出;
  • 提供瀏覽和錄入考試成績網頁接口;
  • 提供生成成績報告單網頁接口。
  • 提供API,容許其它系統根據需求獲取考試成績結果。

對於後端,可由如下三個模塊構成:

  • 數據庫;
  • 成績報告單生成器;
  • 郵件發送成績報告單。

對於整個項目,能夠劃分爲兩個主要的Python包,分別命名爲:web和backend,

  • web package(包含網頁接口四個模塊);
  • backend package(包含後端三個模塊)。

雖然上述內容是一個虛構項目(與實際網頁應用開發有別),但它很好的展現了模塊化編程的思想,把整個項目劃分紅了獨立的模塊和包,有助於咱們對模塊化編程的理解。

5 小結

模塊化編程的應用,有利於咱們管理項目中須要變動或重建的模塊,無需過多修改項目代碼,提高項目的可維護性和靈活性;有利於提高咱們編程的效率,避免重複造車輪的尷尬;有利於優化咱們的項目代碼結構,彰顯項目的邏輯性。

未完待續……

本文章屬於原創做品,歡迎你們轉載分享,禁止修改文章的內容。尊重原創,轉載請註明來自:躬耕南陽  https://www.cnblogs.com/yangmi511/

相關文章
相關標籤/搜索