Python 速查手冊

單元 8 - 套件與組織程式庫

本書已有新版,請參考 Python 簡易手冊 - 目錄

套件是 Python 用目錄組織模組的方式,模組也就是 Python 的程式檔案,因此套件就是 Python 組織程式庫的方式。

目錄、路徑、資料夾等等基本上是同義詞,表示的是同一個概念。

這邊用簡單的例子來說明如何設置套件,套件最基本的就是要在目錄內加入前後兩條底線包圍的 __init__.py 檔案,例如這裡 demo3 目錄內有 __init__.pydemo.py 兩個檔案, demo.py 內有類別 Demo 的定義及未縮排的測試程式碼,至於 __init__.py 則是完全空白。

然後在 dmeo3 資料夾的上一層目錄利用以下程式從 demo3.demo 引入 Demo 類別

from demo3.demo import Demo

d = Demo()
d.demo()

#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:package01.py
# 功能:示範套件
# 作者:張凱慶

於命令列執行以上程式,結果如下

$ python3 package01.py
dmeo
dmeo
$

換到 demo3 目錄內查看,可以看到多了 __pycache__ 目錄,這個目錄是放置 Python 直譯器即時編譯出的 .pyc 檔案,這是由於 demo3 被當作程式庫用 import 引入過,產生 .pyc 檔案可加快下次引入的過程

如果套件中超過一個模組,為了確保每一個模組都能被有效引入,也就是在 from import 後面用星號的時候,這時候就要在 __init__.py 中定義變數 __all__ ,注意 __all__ 也是前後被兩條底線包圍。

變數 __all__ 就是包含所有模組名稱的串列,注意模組名稱放在字串裡面,有多少模組就放多少模組名稱的字串,如下

__all__ = ['demo']

#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:__init__.py
# 功能:示範定義模組
# 作者:張凱慶

相關教學影片

上一頁:單元 7 - 模組與 __name__
Python 速查手冊 - 目錄
下一頁:單元 9 - 內建函數
回 Python 教材首頁
回程式語言教材首頁