套件是 Python 用目錄組織模組的方式,模組也就是 Python 的程式檔案,因此套件就是 Python 組織程式庫的方式。
目錄、路徑、資料夾等等基本上是同義詞,表示的是同一個概念。
這邊用簡單的例子來說明如何設置套件,套件最基本的就是要在目錄內加入前後兩條底線包圍的 __init__.py 檔案,例如這裡 demo3 目錄內有 __init__.py 及 demo.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
# 功能:示範定義模組
# 作者:張凱慶
相關教學影片