第14天:模組與套件
課程簡介
Python 的模組(Module)和套件(Package)是用來組織和重用程式碼的重要機制。模組是 Python 檔案,裡面包含定義與函數;套件則是由多個模組組成的目錄,目錄下有一個 __init__.py
檔案。透過模組和套件,可以將程式碼拆分為易於管理和重用的部分。今天我們將學習如何導入模組、創建自己的模組和套件,以及使用 Python 的標準庫。
學習內容
1. 導入模組
Python 提供許多內建的模組,可以直接導入使用,例如 math
、random
等。我們可以使用 import
語句來導入模組,然後使用模組中的函數或變數。
範例:
1
2
3
4
5
6
# 導入 math 模組
import math
# 使用模組中的函數
result = math.sqrt(16)
print(result) # 輸出: 4.0
2. 導入模組的部分內容
如果只想使用模組中的某些函數或變數,可以使用 from
語句來導入特定部分,這樣不需要每次都使用模組名稱作為前綴。
範例:
1
2
3
4
5
6
# 從 math 模組導入特定函數
from math import sqrt
# 直接使用 sqrt 函數
result = sqrt(25)
print(result) # 輸出: 5.0
3. 導入並重新命名模組
有時候模組名稱過長或會與現有變數名稱衝突,可以使用 as
關鍵字來重新命名模組。
範例:
1
2
3
4
5
6
# 將模組重新命名
import math as m
# 使用重新命名後的模組
result = m.sqrt(9)
print(result) # 輸出: 3.0
4. 創建自己的模組
我們可以將一個 Python 檔案視為一個模組,並通過 import
導入。在同一目錄下建立一個 .py
檔案,然後在另一個檔案中導入使用。
範例: 假設我們有一個名為 mymodule.py
的檔案:
1
2
3
# mymodule.py
def greet(name):
return f"Hello, {name}!"
我們可以在另一個檔案中導入並使用這個模組:
1
2
3
4
5
# main.py
import mymodule
message = mymodule.greet("Alice")
print(message) # 輸出: Hello, Alice!
5. 創建套件
套件是由多個模組組成的目錄。為了使一個目錄成為套件,必須在該目錄下建立一個空白的 __init__.py
檔案。這樣可以將多個模組組織在一起,並通過套件導入。
範例: 目錄結構如下:
1
2
3
4
mypackage/
__init__.py
module1.py
module2.py
module1.py
:
1
2
def add(a, b):
return a + b
module2.py
:
1
2
def subtract(a, b):
return a - b
使用套件中的模組:
1
2
3
4
5
# main.py
from mypackage import module1, module2
print(module1.add(5, 3)) # 輸出: 8
print(module2.subtract(10, 4)) # 輸出: 6
6. 使用 Python 標準庫模組
Python 提供了一個強大的標準庫,涵蓋了許多常見的功能。你可以在程式中使用它們來解決日常的問題,例如處理日期、操作檔案系統、執行數學計算等。
常見的標準庫模組包括:
datetime
:處理日期和時間。os
:與作業系統進行交互,例如檔案系統操作。sys
:提供訪問 Python 解譯器的變數與函數。
範例:
1
2
3
4
5
6
7
8
9
10
11
import datetime
# 獲取當前日期和時間
now = datetime.datetime.now()
print(now)
import os
# 獲取當前工作目錄
current_directory = os.getcwd()
print(current_directory)
教學重點
- 導入模組:學會使用
import
語句導入模組,並使用模組中的函數和變數。 - 部分導入:使用
from ... import ...
導入模組的特定部分。 - 自訂模組:學會創建自己的模組並在其他程式中使用。
- 套件的概念:瞭解如何組織模組並建立套件,方便管理和重用。
- 使用 Python 標準庫:熟悉一些常用的標準庫模組,並學會解決日常問題。
任務
- 建立一個名為
calculator.py
的模組,裡面包含add()
和subtract()
函數。然後在另一個檔案中導入並使用這些函數。 - 創建一個套件,裡面有兩個模組,一個模組包含乘法運算,另一個模組包含除法運算。使用套件中的模組完成基本運算。
- 導入
datetime
模組,並列印出當前的日期和時間。 - 使用
os
模組來列印當前的工作目錄並列出該目錄下的所有檔案。
本文章以 CC BY 4.0 授權