Module
是一個 Python File 檔案裡的 Function。
套件是存放了數個 Python File 的資料夾,也可以視為一群 Module
的集合,使用特別的方法將數個 Module
封裝起來。
import
import package # 匯入 package 套件
print(package.module(arg1,arg2)) # 呼叫 package 套件的 module 模組
import ... as ...
import package as alias # 匯入 package 套件並設定別名為 alias
print(alias.module(arg1,arg2)) # 透過別名呼叫 package 套件的 module 模組
from ... import ...
from package import module # 從 package 套件匯入 module 模組
print(function(arg1,arg2)) # 呼叫 module 模組
from package import * # 從 package 套件匯入所有模組
一般在建立專案時,可能會在同一個檔案進行測試並開發,當專案越寫越大,時間一久可能就忘記當初開發時的一些想法。此時,將專案明確的分門別類就很重要,能幫助自己理解專案內容,把類似的功能打包進同一個檔案中,避免要找某行程式時滑了幾千行程式還沒找到。
以下舉一個例子,檔案架構如下:
.
├── my_package1 # 套件的資料夾
│ ├── __init__.py # 該套件的初始化檔案
│ ├── file1.py # 套件內的檔案 1
│ ├── file2.py
│ └── file3.py
├── my_package2
│ ├── __init__.py
│ └── file1.py
└── main.py # 為程式進入點,主要的程式控制在此檔案。
在 main.py
要匯入 my_package1
套件則可以直接匯入套件名稱,此時匯入的會是 __init__.py
內的程式碼。而如果要匯入套件中特定的檔案如 file1.py
,則加上 .file1
。
import my_package1
import my_package1.file1
from my_package1.file2 import *
Python 在匯入套件分為 Absolute import
和 Relative import
,上述的方法都是 absolute import。
# ex: main.py, my_package1/__init__.py, my_package1/file1.py ...
from my_package2.file1 import *