當我們在開發大型應用程式時,如果沒有適當的組織程式碼,除了會降低開發的效率外,也不易於維護,所以模組(Module)化就顯得相當的重要,讓程式碼能夠透過引用的方式來重複使用,提升重用性(Reusable)。
但是隨著專案模組(Module)的增加,將難以管理及問題的追蹤,這時候就能將模組(Module)打包成套件(Package),利用其階層式的結構來彈性規劃模組(Module)。
本篇文章就帶大家瞭解Python模組(Module)及套件(Package)的重要觀念。
Q: 什麼是模組(Module)
模組(Module)就是一個檔案,包含了相關性較高的程式碼。隨著應用程式的開發規模越來越大,我們不可能把所有的程式碼都寫在同一份Python檔案中,一定會將關聯性較高的程式碼抽出來放在不同的檔案中來形成模組(Module),主程式再透過引用的方式來使用。所以模組(Module)可以提高程式碼的重用性(Reusable)且易於維護。
假設我們現在要開發一個部落格,主程式為 app.py ,在還沒有模組化時,程式碼可能長得像這樣:
#取得作者
def get_author():
return "Mike"
#取得電子郵件
def get_email():
return "example@gmail.com"
#新增文章
def add_post(title):
pass
#刪除文章
def delete_post(title):
pass
add_post()
author = get_author()
email = get_email()
各位應該可以想像,隨著部落格功能的增加,將所有程式碼都寫在 app.py 主程式中會變得怎麼樣。所以這時候就可以將相關性較高的功能進行模組化的動作。
以此範例來說,取得作者及電子郵件可以獨立出來建立一個關於模組(about.py),而新增及刪除文章則可以獨立出來為文章模組(post.py),專門處理文章相關的動作,如下範例:
about.py
#取得作者
def get_author():
return "Mike"
#取得電子郵件
def get_email():
return "example@gmail.com"
post.py
#新增文章
def add_post(title):
pass
#刪除文章
def delete_post(title):
pass
當然,模組(Module)除了可以包含函式(Function)外,也可以為類別(Class),我們以 post.py 為例:
class Post:
# 建構式
def __init__(self):
self.titles = []
# 新增文章
def add_post(self, title):
self.titles.append(title)
# 刪除文章
def delete_post(self, title):
self.titles.remove(title)
所以現在我們專案中有一個主程式 app.py 及兩個模組(Module),分別為 about.py 和 post.py。
)網站觀看更多精彩內容。