13 Python 中的模組
Python 模組是一個 Python 檔案,定義了各種功能介面。把複雜的功能封裝為模組(又稱為庫),將功能實現的細節隱藏起來,使用該模組(庫)的程式設計師不需要了解實現的細節。通過呼叫模組封裝好的功能,可以用僅僅幾行 Python 程式碼實現某項複雜的功能,例如可以用一行程式碼就實現一個 Web 伺服器。
在 Python 的應用領域中,如:web 開發、人工智慧、網路爬蟲、資料分析等領域,已經存在了大量的模組,使用這些模組就可以輕鬆開發出應用程式。
1. 內建模組
Python 中的模組分為兩類:
- 內建模組,由 Python 官方提供,包含在 Python 的安裝包中,安裝完 Python 後即可使用
- 第三方模組,由 Python 愛好者提供,需要使用者額外安裝
Python 提供了多個內建模組,提供了日常程式設計中許多問題的標準解決方案,常見的內建模組如下:
模組名 | 功能描述 |
---|---|
os | 提供作業系統的 IO 訪問等功能 |
sys | 提供獲取命令列引數等功能 |
math | 提供各種常見的數學運算函式 |
random | 提供產生隨機數的功能 |
json | 提供對 json 檔案的解析功能 |
datetime | 提供日期、時間的相關功能 |
2. 模組語法
2.1 math 模組簡介
Python 的 math 模組提供了很多數學運算功能,例如:三角函式、求平方根、求對數等功能:
函式介面 | 功能描述 |
---|---|
fabs | 計算絕對值 |
sin | 正弦函式 |
cos | 餘弦函式 |
sqrt | 求平方根 |
在下面的小節,將使用 math 模組作為例子講解 Python 中模組的語法。
2.2 import 語句
import 語句將指定模組名的模組匯入到程式中,然後程式即可使用模組中定義的函式,語法如下:
import 模組名
使用 import 語句的示例如下:
>>> import math
>>> math.fabs(-123.0)
123.0
- 在第 1 行,引入 math 模組
- 在第 2 行,使用 math 模組中的 fabs 函式求絕對值
2.3 import … as 語句
import … as 語句為模組取一個別名,程式可以使用模組的別名訪問模組中的介面函式,語法如下:
import 模組名 as 別名
使用 import … as 語句的示例如下:
>>> import math as m
>>> m.fabs(-123.0)
123.0
- 在第 1 行,引入 math 模組,設定模組的別名為 m
- 在第 2 行,通過模組的別名 m 訪問模組
2.4 from … import 語句
from … import 語句從指定模組中匯入指定函式,程式可以通過函式名直接訪問模組中定義的函式,語法如下:
from 模組名 import 函式名
使用 from … import 語句的示例如下:
>>> from math import fabs
>>> fabs(-123.0)
123.0
- 在第 1 行,從 math 模組中引入函式 fabs
- 在第 2 行,通過函式名 fabs 訪問模組中定義的函式
2.5 from … import … as 語句
from … import … as 語句從模組中匯入函式,同時為匯入的函式取一個別名,示例如下:
>>> from math import fabs as abs
>>> abs(-123.0)
123.0
- 在第 1 行,從 math 模組中引入函式 fabs,併為該函式設定別名 abs
- 在第 2 行,通過函式的別名 abs 訪問模組中定義的函式
2.6 from … import * 語句
from … import * 語句匯入模組中全部的功能函式,示例如下:
>>> from math import *
>>> fabs(-123.0)
123.0
>>> sqrt(9)
3.0
- 在第 1 行,從 math 模組中匯入全部的功能函式
- 在第 2 行,使用 math 模組中定義的函式 fabs 求絕對值
- 在第 4 行,使用 math 模組中定義的函式 sqrt 求平方根
3. 使用者自定義模組
3.1 概述
本節講解了如何自定義模組和使用模組,例子程式包括兩個檔案:
3.2 定義模組
編寫程式 utils.py:
PI = 3.14
def max(a, b):
if a > b:
return a
else:
return b
def min(a, b):
if a < b:
return a
else:
return b
- 在第 1 行,定義了模組的匯出變數 PI
- 在第 3 行,定義了模組的匯出函式 max
- 在第 9 行,定義了模組的匯出函式 min
3.3 使用模組
編寫主程式 main.py,注意:將 main.py 和 utils.py 放置在相同目錄下:
import utils
print(utils.PI)
print(utils.max(11, 22))
from utils import min
print(min(11, 22))
- 在第 1 行,引入模組 utils
- 在第 2 行,訪問模組的匯出變數 PI
- 在第 3 行,訪問模組的匯出函式 max
- 在第 5 行,引入模組 utils 中的匯出函式 min
- 在第 6 行,訪問模組的匯出函式 min
執行程式 main.py,輸出結果如下:
C:\> python main.py
3.14
22
11
- 在第 2 行,輸出 PI 的值
- 在第 3 行,輸出 max(11, 22) 的結果
- 在第 4 行,輸出 min(11, 22) 的結果