1. 程式人生 > Python進階應用教學 >13 Python 中的模組

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 概述

本節講解了如何自定義模組和使用模組,例子程式包括兩個檔案:

  • 模組 utils.py,定義了函式 max、函式 min 和變數 PI,它們是模組提供的介面
  • 主程式 main.py,使用模組的介面函式和匯出變數

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.pyutils.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) 的結果